Merge remote-tracking branch 'upstream/main' into redis-prefix

This commit is contained in:
Benedikt Bartscher 2024-11-07 20:26:52 +01:00
commit e4d1790e6b
No known key found for this signature in database
90 changed files with 800 additions and 523 deletions

14
poetry.lock generated
View File

@ -54,13 +54,13 @@ trio = ["trio (>=0.26.1)"]
[[package]] [[package]]
name = "async-timeout" name = "async-timeout"
version = "5.0.0" version = "5.0.1"
description = "Timeout context manager for asyncio programs" description = "Timeout context manager for asyncio programs"
optional = false optional = false
python-versions = ">=3.8" python-versions = ">=3.8"
files = [ files = [
{file = "async_timeout-5.0.0-py3-none-any.whl", hash = "sha256:904719a4bd6e0520047d0ddae220aabee67b877f7ca17bf8cea20f67f6247ae0"}, {file = "async_timeout-5.0.1-py3-none-any.whl", hash = "sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c"},
{file = "async_timeout-5.0.0.tar.gz", hash = "sha256:49675ec889daacfe65ff66d2dde7dd1447a6f4b2f23721022e4ba121f8772a85"}, {file = "async_timeout-5.0.1.tar.gz", hash = "sha256:d9321a7a3d5a6a5e187e824d2fa0793ce379a202935782d555d6e9d2735677d3"},
] ]
[[package]] [[package]]
@ -2198,13 +2198,13 @@ reflex = ">=0.6.0a"
[[package]] [[package]]
name = "reflex-hosting-cli" name = "reflex-hosting-cli"
version = "0.1.13" version = "0.1.14"
description = "Reflex Hosting CLI" description = "Reflex Hosting CLI"
optional = false optional = false
python-versions = "<4.0,>=3.8" python-versions = "<4.0,>=3.8"
files = [ files = [
{file = "reflex_hosting_cli-0.1.13-py3-none-any.whl", hash = "sha256:5bfec7f3d7ce4bbd703989f086494e586a641ef37c9e60e60fb82bdfb07ff227"}, {file = "reflex_hosting_cli-0.1.14-py3-none-any.whl", hash = "sha256:b38676a39708511801bd666e5a9788d8eb4aeb6f9196bea77a8c4c6a6c06492f"},
{file = "reflex_hosting_cli-0.1.13.tar.gz", hash = "sha256:c5d6afdcfeb74cee046a374ddbd59116ab8ed797dae688fcc744dabae24dc571"}, {file = "reflex_hosting_cli-0.1.14.tar.gz", hash = "sha256:8c7721b87dd2ce22db110d905ee01e78e5185f0e6dd521752f70aef6cf17b39f"},
] ]
[package.dependencies] [package.dependencies]
@ -3050,4 +3050,4 @@ type = ["pytest-mypy"]
[metadata] [metadata]
lock-version = "2.0" lock-version = "2.0"
python-versions = "^3.9" python-versions = "^3.9"
content-hash = "664c8d3c78923d39d1d59227cb43416228ac396a7004344c058377886421c086" content-hash = "fe91a9b22081a48be519ed3789e40904bd358a05fd6da912566592aa8d382f31"

View File

@ -49,7 +49,7 @@ wrapt = [
{version = ">=1.11.0,<2.0", python = "<3.11"}, {version = ">=1.11.0,<2.0", python = "<3.11"},
] ]
packaging = ">=23.1,<25.0" packaging = ">=23.1,<25.0"
reflex-hosting-cli = ">=0.1.2,<2.0" reflex-hosting-cli = ">=0.1.4,<2.0"
charset-normalizer = ">=3.3.2,<4.0" charset-normalizer = ">=3.3.2,<4.0"
wheel = ">=0.42.0,<1.0" wheel = ">=0.42.0,<1.0"
build = ">=1.0.3,<2.0" build = ">=1.0.3,<2.0"
@ -91,6 +91,7 @@ build-backend = "poetry.core.masonry.api"
[tool.ruff] [tool.ruff]
target-version = "py39" target-version = "py39"
lint.isort.split-on-trailing-comma = false
lint.select = ["B", "D", "E", "F", "I", "SIM", "W"] lint.select = ["B", "D", "E", "F", "I", "SIM", "W"]
lint.ignore = ["B008", "D205", "E501", "F403", "SIM115"] lint.ignore = ["B008", "D205", "E501", "F403", "SIM115"]
lint.pydocstyle.convention = "google" lint.pydocstyle.convention = "google"

View File

@ -238,7 +238,10 @@ export const applyEvent = async (event, socket) => {
return false; return false;
} }
if (event.name == "_call_function") { if (
event.name == "_call_function" &&
typeof event.payload.function !== "string"
) {
try { try {
const eval_result = event.payload.function(); const eval_result = event.payload.function();
if (event.payload.callback) { if (event.payload.callback) {
@ -257,9 +260,13 @@ export const applyEvent = async (event, socket) => {
return false; return false;
} }
if (event.name == "_call_script") { if (event.name == "_call_script" || event.name == "_call_function") {
try { try {
const eval_result = eval(event.payload.javascript_code); const eval_result =
event.name == "_call_script"
? eval(event.payload.javascript_code)
: eval(event.payload.function)();
if (event.payload.callback) { if (event.payload.callback) {
if (!!eval_result && typeof eval_result.then === "function") { if (!!eval_result && typeof eval_result.then === "function") {
eval(event.payload.callback)(await eval_result); eval(event.payload.callback)(await eval_result);

View File

@ -48,10 +48,7 @@ from reflex.admin import AdminDash
from reflex.app_mixins import AppMixin, LifespanMixin, MiddlewareMixin from reflex.app_mixins import AppMixin, LifespanMixin, MiddlewareMixin
from reflex.compiler import compiler from reflex.compiler import compiler
from reflex.compiler import utils as compiler_utils from reflex.compiler import utils as compiler_utils
from reflex.compiler.compiler import ( from reflex.compiler.compiler import ExecutorSafeFunctions, compile_theme
ExecutorSafeFunctions,
compile_theme,
)
from reflex.components.base.app_wrap import AppWrap from reflex.components.base.app_wrap import AppWrap
from reflex.components.base.error_boundary import ErrorBoundary from reflex.components.base.error_boundary import ErrorBoundary
from reflex.components.base.fragment import Fragment from reflex.components.base.fragment import Fragment
@ -79,9 +76,7 @@ from reflex.event import (
window_alert, window_alert,
) )
from reflex.model import Model, get_db_status from reflex.model import Model, get_db_status
from reflex.page import ( from reflex.page import DECORATED_PAGES
DECORATED_PAGES,
)
from reflex.route import ( from reflex.route import (
get_route_args, get_route_args,
replace_brackets_with_keywords, replace_brackets_with_keywords,

View File

@ -32,7 +32,13 @@ class ErrorBoundary(Component):
on_click: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None,
on_context_menu: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None,
on_double_click: Optional[EventType[[], BASE_STATE]] = None, on_double_click: Optional[EventType[[], BASE_STATE]] = None,
on_error: Optional[EventType[[str, str], BASE_STATE]] = None, on_error: Optional[
Union[
EventType[[], BASE_STATE],
EventType[[str], BASE_STATE],
EventType[[str, str], BASE_STATE],
]
] = None,
on_focus: Optional[EventType[[], BASE_STATE]] = None, on_focus: Optional[EventType[[], BASE_STATE]] = None,
on_mount: Optional[EventType[[], BASE_STATE]] = None, on_mount: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_down: Optional[EventType[[], BASE_STATE]] = None, on_mouse_down: Optional[EventType[[], BASE_STATE]] = None,

View File

@ -6,10 +6,7 @@
from typing import Any, Dict, List, Optional, Union, overload from typing import Any, Dict, List, Optional, Union, overload
from reflex.components.base.fragment import Fragment from reflex.components.base.fragment import Fragment
from reflex.event import ( from reflex.event import BASE_STATE, EventType
BASE_STATE,
EventType,
)
from reflex.style import Style from reflex.style import Style
from reflex.utils.imports import ImportVar from reflex.utils.imports import ImportVar
from reflex.vars.base import Var from reflex.vars.base import Var
@ -43,7 +40,12 @@ class Clipboard(Fragment):
on_mouse_out: Optional[EventType[[], BASE_STATE]] = None, on_mouse_out: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_over: Optional[EventType[[], BASE_STATE]] = None, on_mouse_over: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_up: Optional[EventType[[], BASE_STATE]] = None, on_mouse_up: Optional[EventType[[], BASE_STATE]] = None,
on_paste: Optional[EventType[[list[tuple[str, str]]], BASE_STATE]] = None, on_paste: Optional[
Union[
EventType[[], BASE_STATE],
EventType[[list[tuple[str, str]]], BASE_STATE],
]
] = None,
on_scroll: Optional[EventType[[], BASE_STATE]] = None, on_scroll: Optional[EventType[[], BASE_STATE]] = None,
on_unmount: Optional[EventType[[], BASE_STATE]] = None, on_unmount: Optional[EventType[[], BASE_STATE]] = None,
**props, **props,

View File

@ -6,18 +6,9 @@
from pathlib import Path from pathlib import Path
from typing import Any, ClassVar, Dict, List, Optional, Union, overload from typing import Any, ClassVar, Dict, List, Optional, Union, overload
from reflex.components.component import ( from reflex.components.component import Component, ComponentNamespace, MemoizationLeaf
Component,
ComponentNamespace,
MemoizationLeaf,
)
from reflex.constants import Dirs from reflex.constants import Dirs
from reflex.event import ( from reflex.event import BASE_STATE, CallableEventSpec, EventSpec, EventType
BASE_STATE,
CallableEventSpec,
EventSpec,
EventType,
)
from reflex.style import Style from reflex.style import Style
from reflex.utils.imports import ImportVar from reflex.utils.imports import ImportVar
from reflex.vars import VarData from reflex.vars import VarData
@ -120,7 +111,9 @@ class Upload(MemoizationLeaf):
on_click: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None,
on_context_menu: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None,
on_double_click: Optional[EventType[[], BASE_STATE]] = None, on_double_click: Optional[EventType[[], BASE_STATE]] = None,
on_drop: Optional[EventType[[Any], BASE_STATE]] = None, on_drop: Optional[
Union[EventType[[], BASE_STATE], EventType[[Any], BASE_STATE]]
] = None,
on_focus: Optional[EventType[[], BASE_STATE]] = None, on_focus: Optional[EventType[[], BASE_STATE]] = None,
on_mount: Optional[EventType[[], BASE_STATE]] = None, on_mount: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_down: Optional[EventType[[], BASE_STATE]] = None, on_mouse_down: Optional[EventType[[], BASE_STATE]] = None,
@ -186,7 +179,9 @@ class StyledUpload(Upload):
on_click: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None,
on_context_menu: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None,
on_double_click: Optional[EventType[[], BASE_STATE]] = None, on_double_click: Optional[EventType[[], BASE_STATE]] = None,
on_drop: Optional[EventType[[Any], BASE_STATE]] = None, on_drop: Optional[
Union[EventType[[], BASE_STATE], EventType[[Any], BASE_STATE]]
] = None,
on_focus: Optional[EventType[[], BASE_STATE]] = None, on_focus: Optional[EventType[[], BASE_STATE]] = None,
on_mount: Optional[EventType[[], BASE_STATE]] = None, on_mount: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_down: Optional[EventType[[], BASE_STATE]] = None, on_mouse_down: Optional[EventType[[], BASE_STATE]] = None,
@ -252,7 +247,9 @@ class UploadNamespace(ComponentNamespace):
on_click: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None,
on_context_menu: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None,
on_double_click: Optional[EventType[[], BASE_STATE]] = None, on_double_click: Optional[EventType[[], BASE_STATE]] = None,
on_drop: Optional[EventType[[Any], BASE_STATE]] = None, on_drop: Optional[
Union[EventType[[], BASE_STATE], EventType[[Any], BASE_STATE]]
] = None,
on_focus: Optional[EventType[[], BASE_STATE]] = None, on_focus: Optional[EventType[[], BASE_STATE]] = None,
on_mount: Optional[EventType[[], BASE_STATE]] = None, on_mount: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_down: Optional[EventType[[], BASE_STATE]] = None, on_mouse_down: Optional[EventType[[], BASE_STATE]] = None,

View File

@ -184,34 +184,80 @@ class DataEditor(NoSSRComponent):
autofocus: Optional[bool] = None, autofocus: Optional[bool] = None,
custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
on_blur: Optional[EventType[[], BASE_STATE]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None,
on_cell_activated: Optional[EventType[[tuple[int, int]], BASE_STATE]] = None, on_cell_activated: Optional[
on_cell_clicked: Optional[EventType[[tuple[int, int]], BASE_STATE]] = None, Union[EventType[[], BASE_STATE], EventType[[tuple[int, int]], BASE_STATE]]
on_cell_context_menu: Optional[EventType[[tuple[int, int]], BASE_STATE]] = None, ] = None,
on_cell_clicked: Optional[
Union[EventType[[], BASE_STATE], EventType[[tuple[int, int]], BASE_STATE]]
] = None,
on_cell_context_menu: Optional[
Union[EventType[[], BASE_STATE], EventType[[tuple[int, int]], BASE_STATE]]
] = None,
on_cell_edited: Optional[ on_cell_edited: Optional[
EventType[[tuple[int, int], GridCell], BASE_STATE] Union[
EventType[[], BASE_STATE],
EventType[[tuple[int, int]], BASE_STATE],
EventType[[tuple[int, int], GridCell], BASE_STATE],
]
] = None, ] = None,
on_click: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None,
on_column_resize: Optional[EventType[[GridColumn, int], BASE_STATE]] = None, on_column_resize: Optional[
Union[
EventType[[], BASE_STATE],
EventType[[GridColumn], BASE_STATE],
EventType[[GridColumn, int], BASE_STATE],
]
] = None,
on_context_menu: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None,
on_delete: Optional[EventType[[GridSelection], BASE_STATE]] = None, on_delete: Optional[
Union[EventType[[], BASE_STATE], EventType[[GridSelection], BASE_STATE]]
] = None,
on_double_click: Optional[EventType[[], BASE_STATE]] = None, on_double_click: Optional[EventType[[], BASE_STATE]] = None,
on_finished_editing: Optional[ on_finished_editing: Optional[
EventType[[Union[GridCell, None], tuple[int, int]], BASE_STATE] Union[
EventType[[], BASE_STATE],
EventType[[Union[GridCell, None]], BASE_STATE],
EventType[[Union[GridCell, None], tuple[int, int]], BASE_STATE],
]
] = None, ] = None,
on_focus: Optional[EventType[[], BASE_STATE]] = None, on_focus: Optional[EventType[[], BASE_STATE]] = None,
on_group_header_clicked: Optional[ on_group_header_clicked: Optional[
EventType[[tuple[int, int], GridCell], BASE_STATE] Union[
EventType[[], BASE_STATE],
EventType[[tuple[int, int]], BASE_STATE],
EventType[[tuple[int, int], GridCell], BASE_STATE],
]
] = None, ] = None,
on_group_header_context_menu: Optional[ on_group_header_context_menu: Optional[
EventType[[int, GroupHeaderClickedEventArgs], BASE_STATE] Union[
EventType[[], BASE_STATE],
EventType[[int], BASE_STATE],
EventType[[int, GroupHeaderClickedEventArgs], BASE_STATE],
]
] = None,
on_group_header_renamed: Optional[
Union[
EventType[[], BASE_STATE],
EventType[[str], BASE_STATE],
EventType[[str, str], BASE_STATE],
]
] = None,
on_header_clicked: Optional[
Union[EventType[[], BASE_STATE], EventType[[tuple[int, int]], BASE_STATE]]
] = None, ] = None,
on_group_header_renamed: Optional[EventType[[str, str], BASE_STATE]] = None,
on_header_clicked: Optional[EventType[[tuple[int, int]], BASE_STATE]] = None,
on_header_context_menu: Optional[ on_header_context_menu: Optional[
EventType[[tuple[int, int]], BASE_STATE] Union[EventType[[], BASE_STATE], EventType[[tuple[int, int]], BASE_STATE]]
] = None,
on_header_menu_click: Optional[
Union[
EventType[[], BASE_STATE],
EventType[[int], BASE_STATE],
EventType[[int, Rectangle], BASE_STATE],
]
] = None,
on_item_hovered: Optional[
Union[EventType[[], BASE_STATE], EventType[[tuple[int, int]], BASE_STATE]]
] = None, ] = None,
on_header_menu_click: Optional[EventType[[int, Rectangle], BASE_STATE]] = None,
on_item_hovered: Optional[EventType[[tuple[int, int]], BASE_STATE]] = None,
on_mount: Optional[EventType[[], BASE_STATE]] = None, on_mount: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_down: Optional[EventType[[], BASE_STATE]] = None, on_mouse_down: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_enter: Optional[EventType[[], BASE_STATE]] = None, on_mouse_enter: Optional[EventType[[], BASE_STATE]] = None,

View File

@ -8,7 +8,7 @@ from typing import Any, Dict, Optional, Tuple, Union, overload
from jinja2 import Environment from jinja2 import Environment
from reflex.components.el.element import Element from reflex.components.el.element import Element
from reflex.event import BASE_STATE, EventType from reflex.event import BASE_STATE, EventType, KeyInputInfo
from reflex.style import Style from reflex.style import Style
from reflex.utils.imports import ImportDict from reflex.utils.imports import ImportDict
from reflex.vars.base import Var from reflex.vars.base import Var
@ -340,8 +340,12 @@ class Form(BaseHTML):
on_scroll: Optional[EventType[[], BASE_STATE]] = None, on_scroll: Optional[EventType[[], BASE_STATE]] = None,
on_submit: Optional[ on_submit: Optional[
Union[ Union[
EventType[[Dict[str, Any]], BASE_STATE], Union[
EventType[[Dict[str, str]], BASE_STATE], EventType[[], BASE_STATE], EventType[[Dict[str, Any]], BASE_STATE]
],
Union[
EventType[[], BASE_STATE], EventType[[Dict[str, str]], BASE_STATE]
],
] ]
] = None, ] = None,
on_unmount: Optional[EventType[[], BASE_STATE]] = None, on_unmount: Optional[EventType[[], BASE_STATE]] = None,
@ -470,14 +474,32 @@ class Input(BaseHTML):
class_name: Optional[Any] = None, class_name: Optional[Any] = None,
autofocus: Optional[bool] = None, autofocus: Optional[bool] = None,
custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
on_blur: Optional[EventType[[str], BASE_STATE]] = None, on_blur: Optional[
on_change: Optional[EventType[[str], BASE_STATE]] = None, 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_click: Optional[EventType[[], BASE_STATE]] = None,
on_context_menu: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None,
on_double_click: Optional[EventType[[], BASE_STATE]] = None, on_double_click: Optional[EventType[[], BASE_STATE]] = None,
on_focus: Optional[EventType[[str], BASE_STATE]] = None, on_focus: Optional[
on_key_down: Optional[EventType[[str], BASE_STATE]] = None, Union[EventType[[], BASE_STATE], EventType[[str], BASE_STATE]]
on_key_up: Optional[EventType[[str], BASE_STATE]] = None, ] = 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_mount: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_down: Optional[EventType[[], BASE_STATE]] = None, on_mouse_down: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_enter: Optional[EventType[[], BASE_STATE]] = None, on_mouse_enter: Optional[EventType[[], BASE_STATE]] = None,
@ -1252,7 +1274,9 @@ class Select(BaseHTML):
autofocus: Optional[bool] = None, autofocus: Optional[bool] = None,
custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
on_blur: Optional[EventType[[], BASE_STATE]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None,
on_change: Optional[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_click: Optional[EventType[[], BASE_STATE]] = None,
on_context_menu: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None,
on_double_click: Optional[EventType[[], BASE_STATE]] = None, on_double_click: Optional[EventType[[], BASE_STATE]] = None,
@ -1369,14 +1393,32 @@ class Textarea(BaseHTML):
class_name: Optional[Any] = None, class_name: Optional[Any] = None,
autofocus: Optional[bool] = None, autofocus: Optional[bool] = None,
custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
on_blur: Optional[EventType[[str], BASE_STATE]] = None, on_blur: Optional[
on_change: Optional[EventType[[str], BASE_STATE]] = None, 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_click: Optional[EventType[[], BASE_STATE]] = None,
on_context_menu: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None,
on_double_click: Optional[EventType[[], BASE_STATE]] = None, on_double_click: Optional[EventType[[], BASE_STATE]] = None,
on_focus: Optional[EventType[[str], BASE_STATE]] = None, on_focus: Optional[
on_key_down: Optional[EventType[[str], BASE_STATE]] = None, Union[EventType[[], BASE_STATE], EventType[[str], BASE_STATE]]
on_key_up: Optional[EventType[[str], BASE_STATE]] = None, ] = 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_mount: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_down: Optional[EventType[[], BASE_STATE]] = None, on_mouse_down: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_enter: Optional[EventType[[], BASE_STATE]] = None, on_mouse_enter: Optional[EventType[[], BASE_STATE]] = None,

View File

@ -59,7 +59,9 @@ class Moment(NoSSRComponent):
autofocus: Optional[bool] = None, autofocus: Optional[bool] = None,
custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
on_blur: Optional[EventType[[], BASE_STATE]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None,
on_change: Optional[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_click: Optional[EventType[[], BASE_STATE]] = None,
on_context_menu: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None,
on_double_click: Optional[EventType[[], BASE_STATE]] = None, on_double_click: Optional[EventType[[], BASE_STATE]] = None,

View File

@ -2,12 +2,13 @@
from __future__ import annotations from __future__ import annotations
from typing import Any, Dict, List from typing import Any, Dict, List, Tuple, Union
from typing_extensions import TypedDict, TypeVar
from reflex.base import Base
from reflex.components.component import Component, NoSSRComponent from reflex.components.component import Component, NoSSRComponent
from reflex.components.core.cond import color_mode_cond from reflex.components.core.cond import color_mode_cond
from reflex.event import EventHandler from reflex.event import EventHandler, no_args_event_spec
from reflex.utils import console from reflex.utils import console
from reflex.vars.base import LiteralVar, Var from reflex.vars.base import LiteralVar, Var
@ -21,19 +22,7 @@ except ImportError:
Template = Any # type: ignore Template = Any # type: ignore
def _event_data_signature(e0: Var) -> List[Any]: def _event_points_data_signature(e0: Var) -> Tuple[Var[List[Point]]]:
"""For plotly events with event data and no points.
Args:
e0: The event data.
Returns:
The event key extracted from the event data (if defined).
"""
return [Var(_js_expr=f"{e0}?.event")]
def _event_points_data_signature(e0: Var) -> List[Any]:
"""For plotly events with event data containing a point array. """For plotly events with event data containing a point array.
Args: Args:
@ -42,51 +31,63 @@ def _event_points_data_signature(e0: Var) -> List[Any]:
Returns: Returns:
The event data and the extracted points. The event data and the extracted points.
""" """
return [ return (Var(_js_expr=f"extractPoints({e0}?.points)"),)
Var(_js_expr=f"{e0}?.event"),
Var(_js_expr=f"extractPoints({e0}?.points)"),
T = TypeVar("T")
ItemOrList = Union[T, List[T]]
class BBox(TypedDict):
"""Bounding box for a point in a plotly graph."""
x0: Union[float, int, None]
x1: Union[float, int, None]
y0: Union[float, int, None]
y1: Union[float, int, None]
z0: Union[float, int, None]
z1: Union[float, int, None]
class Point(TypedDict):
"""A point in a plotly graph."""
x: Union[float, int, None]
y: Union[float, int, None]
z: Union[float, int, None]
lat: Union[float, int, None]
lon: Union[float, int, None]
curveNumber: Union[int, None]
pointNumber: Union[int, None]
pointNumbers: Union[List[int], None]
pointIndex: Union[int, None]
markerColor: Union[
ItemOrList[
ItemOrList[
Union[
float,
int,
str,
None,
] ]
]
],
class _ButtonClickData(Base): None,
"""Event data structure for plotly UI buttons.""" ]
markerSize: Union[
menu: Any ItemOrList[
button: Any ItemOrList[
active: Any Union[
float,
int,
def _button_click_signature(e0: _ButtonClickData) -> List[Any]: None,
"""For plotly button click events. ]
]
Args: ],
e0: The button click data. None,
]
Returns: bbox: Union[BBox, None]
The menu, button, and active state.
"""
return [e0.menu, e0.button, e0.active]
def _passthrough_signature(e0: Var) -> List[Any]:
"""For plotly events with arbitrary serializable data, passed through directly.
Args:
e0: The event data.
Returns:
The event data.
"""
return [e0]
def _null_signature() -> List[Any]:
"""For plotly events with no data or non-serializable data. Nothing passed through.
Returns:
An empty list (nothing passed through).
"""
return []
class Plotly(NoSSRComponent): class Plotly(NoSSRComponent):
@ -116,49 +117,49 @@ class Plotly(NoSSRComponent):
use_resize_handler: Var[bool] = LiteralVar.create(True) use_resize_handler: Var[bool] = LiteralVar.create(True)
# Fired after the plot is redrawn. # Fired after the plot is redrawn.
on_after_plot: EventHandler[_passthrough_signature] on_after_plot: EventHandler[no_args_event_spec]
# Fired after the plot was animated. # Fired after the plot was animated.
on_animated: EventHandler[_null_signature] on_animated: EventHandler[no_args_event_spec]
# Fired while animating a single frame (does not currently pass data through). # Fired while animating a single frame (does not currently pass data through).
on_animating_frame: EventHandler[_null_signature] on_animating_frame: EventHandler[no_args_event_spec]
# Fired when an animation is interrupted (to start a new animation for example). # Fired when an animation is interrupted (to start a new animation for example).
on_animation_interrupted: EventHandler[_null_signature] on_animation_interrupted: EventHandler[no_args_event_spec]
# Fired when the plot is responsively sized. # Fired when the plot is responsively sized.
on_autosize: EventHandler[_event_data_signature] on_autosize: EventHandler[no_args_event_spec]
# Fired whenever mouse moves over a plot. # Fired whenever mouse moves over a plot.
on_before_hover: EventHandler[_event_data_signature] on_before_hover: EventHandler[no_args_event_spec]
# Fired when a plotly UI button is clicked. # Fired when a plotly UI button is clicked.
on_button_clicked: EventHandler[_button_click_signature] on_button_clicked: EventHandler[no_args_event_spec]
# Fired when the plot is clicked. # Fired when the plot is clicked.
on_click: EventHandler[_event_points_data_signature] on_click: EventHandler[_event_points_data_signature]
# Fired when a selection is cleared (via double click). # Fired when a selection is cleared (via double click).
on_deselect: EventHandler[_null_signature] on_deselect: EventHandler[no_args_event_spec]
# Fired when the plot is double clicked. # Fired when the plot is double clicked.
on_double_click: EventHandler[_passthrough_signature] on_double_click: EventHandler[no_args_event_spec]
# Fired when a plot element is hovered over. # Fired when a plot element is hovered over.
on_hover: EventHandler[_event_points_data_signature] on_hover: EventHandler[_event_points_data_signature]
# Fired after the plot is layed out (zoom, pan, etc). # Fired after the plot is layed out (zoom, pan, etc).
on_relayout: EventHandler[_passthrough_signature] on_relayout: EventHandler[no_args_event_spec]
# Fired while the plot is being layed out. # Fired while the plot is being layed out.
on_relayouting: EventHandler[_passthrough_signature] on_relayouting: EventHandler[no_args_event_spec]
# Fired after the plot style is changed. # Fired after the plot style is changed.
on_restyle: EventHandler[_passthrough_signature] on_restyle: EventHandler[no_args_event_spec]
# Fired after the plot is redrawn. # Fired after the plot is redrawn.
on_redraw: EventHandler[_event_data_signature] on_redraw: EventHandler[no_args_event_spec]
# Fired after selecting plot elements. # Fired after selecting plot elements.
on_selected: EventHandler[_event_points_data_signature] on_selected: EventHandler[_event_points_data_signature]
@ -167,10 +168,10 @@ class Plotly(NoSSRComponent):
on_selecting: EventHandler[_event_points_data_signature] on_selecting: EventHandler[_event_points_data_signature]
# Fired while an animation is occuring. # Fired while an animation is occuring.
on_transitioning: EventHandler[_event_data_signature] on_transitioning: EventHandler[no_args_event_spec]
# Fired when a transition is stopped early. # Fired when a transition is stopped early.
on_transition_interrupted: EventHandler[_event_data_signature] on_transition_interrupted: EventHandler[no_args_event_spec]
# Fired when a hovered element is no longer hovered. # Fired when a hovered element is no longer hovered.
on_unhover: EventHandler[_event_points_data_signature] on_unhover: EventHandler[_event_points_data_signature]
@ -216,8 +217,8 @@ const extractPoints = (points) => {
pointNumber: point.pointNumber, pointNumber: point.pointNumber,
pointNumbers: point.pointNumbers, pointNumbers: point.pointNumbers,
pointIndex: point.pointIndex, pointIndex: point.pointIndex,
'marker.color': point['marker.color'], markerColor: point['marker.color'],
'marker.size': point['marker.size'], markerSize: point['marker.size'],
bbox: bbox, bbox: bbox,
}) })
}) })

View File

@ -3,9 +3,10 @@
# ------------------- DO NOT EDIT ---------------------- # ------------------- DO NOT EDIT ----------------------
# This file was generated by `reflex/utils/pyi_generator.py`! # This file was generated by `reflex/utils/pyi_generator.py`!
# ------------------------------------------------------ # ------------------------------------------------------
from typing import Any, Dict, Optional, Union, overload from typing import Any, Dict, List, Optional, Union, overload
from typing_extensions import TypedDict, TypeVar
from reflex.base import Base
from reflex.components.component import NoSSRComponent from reflex.components.component import NoSSRComponent
from reflex.event import BASE_STATE, EventType from reflex.event import BASE_STATE, EventType
from reflex.style import Style from reflex.style import Style
@ -20,11 +21,30 @@ except ImportError:
console.warn("Plotly is not installed. Please run `pip install plotly`.") console.warn("Plotly is not installed. Please run `pip install plotly`.")
Figure = Any Figure = Any
Template = Any Template = Any
T = TypeVar("T")
ItemOrList = Union[T, List[T]]
class _ButtonClickData(Base): class BBox(TypedDict):
menu: Any x0: Union[float, int, None]
button: Any x1: Union[float, int, None]
active: Any y0: Union[float, int, None]
y1: Union[float, int, None]
z0: Union[float, int, None]
z1: Union[float, int, None]
class Point(TypedDict):
x: Union[float, int, None]
y: Union[float, int, None]
z: Union[float, int, None]
lat: Union[float, int, None]
lon: Union[float, int, None]
curveNumber: Union[int, None]
pointNumber: Union[int, None]
pointNumbers: Union[List[int], None]
pointIndex: Union[int, None]
markerColor: Union[ItemOrList[ItemOrList[Union[float, int, str, None]]], None]
markerSize: Union[ItemOrList[ItemOrList[Union[float, int, None]]], None]
bbox: Union[BBox, None]
class Plotly(NoSSRComponent): class Plotly(NoSSRComponent):
def add_imports(self) -> dict[str, str]: ... def add_imports(self) -> dict[str, str]: ...
@ -45,20 +65,24 @@ class Plotly(NoSSRComponent):
class_name: Optional[Any] = None, class_name: Optional[Any] = None,
autofocus: Optional[bool] = None, autofocus: Optional[bool] = None,
custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
on_after_plot: Optional[EventType[..., BASE_STATE]] = None, on_after_plot: Optional[EventType[[], BASE_STATE]] = None,
on_animated: Optional[EventType[..., BASE_STATE]] = None, on_animated: Optional[EventType[[], BASE_STATE]] = None,
on_animating_frame: Optional[EventType[..., BASE_STATE]] = None, on_animating_frame: Optional[EventType[[], BASE_STATE]] = None,
on_animation_interrupted: Optional[EventType[..., BASE_STATE]] = None, on_animation_interrupted: Optional[EventType[[], BASE_STATE]] = None,
on_autosize: Optional[EventType[..., BASE_STATE]] = None, on_autosize: Optional[EventType[[], BASE_STATE]] = None,
on_before_hover: Optional[EventType[..., BASE_STATE]] = None, on_before_hover: Optional[EventType[[], BASE_STATE]] = None,
on_blur: Optional[EventType[[], BASE_STATE]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None,
on_button_clicked: Optional[EventType[..., BASE_STATE]] = None, on_button_clicked: Optional[EventType[[], BASE_STATE]] = None,
on_click: Optional[EventType[..., BASE_STATE]] = None, on_click: Optional[
Union[EventType[[], BASE_STATE], EventType[[List[Point]], BASE_STATE]]
] = None,
on_context_menu: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None,
on_deselect: Optional[EventType[..., BASE_STATE]] = None, on_deselect: Optional[EventType[[], BASE_STATE]] = None,
on_double_click: Optional[EventType[..., BASE_STATE]] = None, on_double_click: Optional[EventType[[], BASE_STATE]] = None,
on_focus: Optional[EventType[[], BASE_STATE]] = None, on_focus: Optional[EventType[[], BASE_STATE]] = None,
on_hover: Optional[EventType[..., BASE_STATE]] = None, on_hover: Optional[
Union[EventType[[], BASE_STATE], EventType[[List[Point]], BASE_STATE]]
] = None,
on_mount: Optional[EventType[[], BASE_STATE]] = None, on_mount: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_down: Optional[EventType[[], BASE_STATE]] = None, on_mouse_down: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_enter: Optional[EventType[[], BASE_STATE]] = None, on_mouse_enter: Optional[EventType[[], BASE_STATE]] = None,
@ -67,16 +91,22 @@ class Plotly(NoSSRComponent):
on_mouse_out: Optional[EventType[[], BASE_STATE]] = None, on_mouse_out: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_over: Optional[EventType[[], BASE_STATE]] = None, on_mouse_over: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_up: Optional[EventType[[], BASE_STATE]] = None, on_mouse_up: Optional[EventType[[], BASE_STATE]] = None,
on_redraw: Optional[EventType[..., BASE_STATE]] = None, on_redraw: Optional[EventType[[], BASE_STATE]] = None,
on_relayout: Optional[EventType[..., BASE_STATE]] = None, on_relayout: Optional[EventType[[], BASE_STATE]] = None,
on_relayouting: Optional[EventType[..., BASE_STATE]] = None, on_relayouting: Optional[EventType[[], BASE_STATE]] = None,
on_restyle: Optional[EventType[..., BASE_STATE]] = None, on_restyle: Optional[EventType[[], BASE_STATE]] = None,
on_scroll: Optional[EventType[[], BASE_STATE]] = None, on_scroll: Optional[EventType[[], BASE_STATE]] = None,
on_selected: Optional[EventType[..., BASE_STATE]] = None, on_selected: Optional[
on_selecting: Optional[EventType[..., BASE_STATE]] = None, Union[EventType[[], BASE_STATE], EventType[[List[Point]], BASE_STATE]]
on_transition_interrupted: Optional[EventType[..., BASE_STATE]] = None, ] = None,
on_transitioning: Optional[EventType[..., BASE_STATE]] = None, on_selecting: Optional[
on_unhover: Optional[EventType[..., BASE_STATE]] = None, Union[EventType[[], BASE_STATE], EventType[[List[Point]], BASE_STATE]]
] = None,
on_transition_interrupted: Optional[EventType[[], BASE_STATE]] = None,
on_transitioning: Optional[EventType[[], BASE_STATE]] = None,
on_unhover: Optional[
Union[EventType[[], BASE_STATE], EventType[[List[Point]], BASE_STATE]]
] = None,
on_unmount: Optional[EventType[[], BASE_STATE]] = None, on_unmount: Optional[EventType[[], BASE_STATE]] = None,
**props, **props,
) -> "Plotly": ) -> "Plotly":

View File

@ -262,7 +262,9 @@ class AccordionRoot(AccordionComponent):
on_mouse_up: Optional[EventType[[], BASE_STATE]] = None, on_mouse_up: Optional[EventType[[], BASE_STATE]] = None,
on_scroll: Optional[EventType[[], BASE_STATE]] = None, on_scroll: Optional[EventType[[], BASE_STATE]] = None,
on_unmount: Optional[EventType[[], BASE_STATE]] = None, on_unmount: Optional[EventType[[], BASE_STATE]] = None,
on_value_change: Optional[EventType[[str | List[str]], BASE_STATE]] = None, on_value_change: Optional[
Union[EventType[[], BASE_STATE], EventType[[str | List[str]], BASE_STATE]]
] = None,
**props, **props,
) -> "AccordionRoot": ) -> "AccordionRoot":
"""Create the component. """Create the component.

View File

@ -91,7 +91,9 @@ class DrawerRoot(DrawerComponent):
class_name: Optional[Any] = None, class_name: Optional[Any] = None,
autofocus: Optional[bool] = None, autofocus: Optional[bool] = None,
custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
on_animation_end: Optional[EventType[[bool], BASE_STATE]] = None, on_animation_end: Optional[
Union[EventType[[], BASE_STATE], EventType[[bool], BASE_STATE]]
] = None,
on_blur: Optional[EventType[[], BASE_STATE]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None,
on_click: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None,
on_context_menu: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None,
@ -105,7 +107,9 @@ class DrawerRoot(DrawerComponent):
on_mouse_out: Optional[EventType[[], BASE_STATE]] = None, on_mouse_out: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_over: Optional[EventType[[], BASE_STATE]] = None, on_mouse_over: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_up: Optional[EventType[[], BASE_STATE]] = None, on_mouse_up: Optional[EventType[[], BASE_STATE]] = None,
on_open_change: Optional[EventType[[bool], BASE_STATE]] = None, on_open_change: Optional[
Union[EventType[[], BASE_STATE], EventType[[bool], BASE_STATE]]
] = None,
on_scroll: Optional[EventType[[], BASE_STATE]] = None, on_scroll: Optional[EventType[[], BASE_STATE]] = None,
on_unmount: Optional[EventType[[], BASE_STATE]] = None, on_unmount: Optional[EventType[[], BASE_STATE]] = None,
**props, **props,
@ -573,7 +577,9 @@ class Drawer(ComponentNamespace):
class_name: Optional[Any] = None, class_name: Optional[Any] = None,
autofocus: Optional[bool] = None, autofocus: Optional[bool] = None,
custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
on_animation_end: Optional[EventType[[bool], BASE_STATE]] = None, on_animation_end: Optional[
Union[EventType[[], BASE_STATE], EventType[[bool], BASE_STATE]]
] = None,
on_blur: Optional[EventType[[], BASE_STATE]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None,
on_click: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None,
on_context_menu: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None,
@ -587,7 +593,9 @@ class Drawer(ComponentNamespace):
on_mouse_out: Optional[EventType[[], BASE_STATE]] = None, on_mouse_out: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_over: Optional[EventType[[], BASE_STATE]] = None, on_mouse_over: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_up: Optional[EventType[[], BASE_STATE]] = None, on_mouse_up: Optional[EventType[[], BASE_STATE]] = None,
on_open_change: Optional[EventType[[bool], BASE_STATE]] = None, on_open_change: Optional[
Union[EventType[[], BASE_STATE], EventType[[bool], BASE_STATE]]
] = None,
on_scroll: Optional[EventType[[], BASE_STATE]] = None, on_scroll: Optional[EventType[[], BASE_STATE]] = None,
on_unmount: Optional[EventType[[], BASE_STATE]] = None, on_unmount: Optional[EventType[[], BASE_STATE]] = None,
**props, **props,

View File

@ -131,8 +131,12 @@ class FormRoot(FormComponent, HTMLForm):
on_scroll: Optional[EventType[[], BASE_STATE]] = None, on_scroll: Optional[EventType[[], BASE_STATE]] = None,
on_submit: Optional[ on_submit: Optional[
Union[ Union[
EventType[[Dict[str, Any]], BASE_STATE], Union[
EventType[[Dict[str, str]], BASE_STATE], EventType[[], BASE_STATE], EventType[[Dict[str, Any]], BASE_STATE]
],
Union[
EventType[[], BASE_STATE], EventType[[Dict[str, str]], BASE_STATE]
],
] ]
] = None, ] = None,
on_unmount: Optional[EventType[[], BASE_STATE]] = None, on_unmount: Optional[EventType[[], BASE_STATE]] = None,
@ -603,8 +607,12 @@ class Form(FormRoot):
on_scroll: Optional[EventType[[], BASE_STATE]] = None, on_scroll: Optional[EventType[[], BASE_STATE]] = None,
on_submit: Optional[ on_submit: Optional[
Union[ Union[
EventType[[Dict[str, Any]], BASE_STATE], Union[
EventType[[Dict[str, str]], BASE_STATE], EventType[[], BASE_STATE], EventType[[Dict[str, Any]], BASE_STATE]
],
Union[
EventType[[], BASE_STATE], EventType[[Dict[str, str]], BASE_STATE]
],
] ]
] = None, ] = None,
on_unmount: Optional[EventType[[], BASE_STATE]] = None, on_unmount: Optional[EventType[[], BASE_STATE]] = None,
@ -732,8 +740,12 @@ class FormNamespace(ComponentNamespace):
on_scroll: Optional[EventType[[], BASE_STATE]] = None, on_scroll: Optional[EventType[[], BASE_STATE]] = None,
on_submit: Optional[ on_submit: Optional[
Union[ Union[
EventType[[Dict[str, Any]], BASE_STATE], Union[
EventType[[Dict[str, str]], BASE_STATE], EventType[[], BASE_STATE], EventType[[Dict[str, Any]], BASE_STATE]
],
Union[
EventType[[], BASE_STATE], EventType[[Dict[str, str]], BASE_STATE]
],
] ]
] = None, ] = None,
on_unmount: Optional[EventType[[], BASE_STATE]] = None, on_unmount: Optional[EventType[[], BASE_STATE]] = None,

View File

@ -109,8 +109,12 @@ class SliderRoot(SliderComponent):
on_mouse_up: Optional[EventType[[], BASE_STATE]] = None, on_mouse_up: Optional[EventType[[], BASE_STATE]] = None,
on_scroll: Optional[EventType[[], BASE_STATE]] = None, on_scroll: Optional[EventType[[], BASE_STATE]] = None,
on_unmount: Optional[EventType[[], BASE_STATE]] = None, on_unmount: Optional[EventType[[], BASE_STATE]] = None,
on_value_change: Optional[EventType[[List[int]], BASE_STATE]] = None, on_value_change: Optional[
on_value_commit: Optional[EventType[[List[int]], BASE_STATE]] = None, Union[EventType[[], BASE_STATE], EventType[[List[int]], BASE_STATE]]
] = None,
on_value_commit: Optional[
Union[EventType[[], BASE_STATE], EventType[[List[int]], BASE_STATE]]
] = None,
**props, **props,
) -> "SliderRoot": ) -> "SliderRoot":
"""Create the component. """Create the component.

View File

@ -11,10 +11,7 @@ from reflex.components.core.cond import Cond
from reflex.components.lucide.icon import Icon from reflex.components.lucide.icon import Icon
from reflex.components.radix.themes.components.switch import Switch from reflex.components.radix.themes.components.switch import Switch
from reflex.event import BASE_STATE, EventType from reflex.event import BASE_STATE, EventType
from reflex.style import ( from reflex.style import Style, color_mode
Style,
color_mode,
)
from reflex.vars.base import Var from reflex.vars.base import Var
from .components.icon_button import IconButton from .components.icon_button import IconButton
@ -395,7 +392,9 @@ class ColorModeSwitch(Switch):
autofocus: Optional[bool] = None, autofocus: Optional[bool] = None,
custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
on_blur: Optional[EventType[[], BASE_STATE]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None,
on_change: Optional[EventType[[bool], BASE_STATE]] = None, on_change: Optional[
Union[EventType[[], BASE_STATE], EventType[[bool], BASE_STATE]]
] = None,
on_click: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None,
on_context_menu: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None,
on_double_click: Optional[EventType[[], BASE_STATE]] = None, on_double_click: Optional[EventType[[], BASE_STATE]] = None,

View File

@ -43,7 +43,9 @@ class AlertDialogRoot(RadixThemesComponent):
on_mouse_out: Optional[EventType[[], BASE_STATE]] = None, on_mouse_out: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_over: Optional[EventType[[], BASE_STATE]] = None, on_mouse_over: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_up: Optional[EventType[[], BASE_STATE]] = None, on_mouse_up: Optional[EventType[[], BASE_STATE]] = None,
on_open_change: Optional[EventType[[bool], BASE_STATE]] = None, on_open_change: Optional[
Union[EventType[[], BASE_STATE], EventType[[bool], BASE_STATE]]
] = None,
on_scroll: Optional[EventType[[], BASE_STATE]] = None, on_scroll: Optional[EventType[[], BASE_STATE]] = None,
on_unmount: Optional[EventType[[], BASE_STATE]] = None, on_unmount: Optional[EventType[[], BASE_STATE]] = None,
**props, **props,

View File

@ -5,11 +5,7 @@ from typing import Literal
from reflex.components.core.breakpoints import Responsive from reflex.components.core.breakpoints import Responsive
from reflex.vars.base import Var from reflex.vars.base import Var
from ..base import ( from ..base import LiteralAccentColor, LiteralRadius, RadixThemesComponent
LiteralAccentColor,
LiteralRadius,
RadixThemesComponent,
)
LiteralSize = Literal["1", "2", "3", "4", "5", "6", "7", "8", "9"] LiteralSize = Literal["1", "2", "3", "4", "5", "6", "7", "8", "9"]

View File

@ -6,11 +6,7 @@ from reflex.components.core.breakpoints import Responsive
from reflex.components.el import elements from reflex.components.el import elements
from reflex.vars.base import Var from reflex.vars.base import Var
from ..base import ( from ..base import LiteralAccentColor, LiteralRadius, RadixThemesComponent
LiteralAccentColor,
LiteralRadius,
RadixThemesComponent,
)
class Badge(elements.Span, RadixThemesComponent): class Badge(elements.Span, RadixThemesComponent):

View File

@ -11,10 +11,7 @@ from reflex.event import BASE_STATE, EventType
from reflex.style import Style from reflex.style import Style
from reflex.vars.base import Var from reflex.vars.base import Var
from ..base import ( from ..base import RadixLoadingProp, RadixThemesComponent
RadixLoadingProp,
RadixThemesComponent,
)
LiteralButtonSize = Literal["1", "2", "3", "4"] LiteralButtonSize = Literal["1", "2", "3", "4"]

View File

@ -9,10 +9,7 @@ from reflex.components.el import elements
from reflex.components.lucide.icon import Icon from reflex.components.lucide.icon import Icon
from reflex.vars.base import Var from reflex.vars.base import Var
from ..base import ( from ..base import LiteralAccentColor, RadixThemesComponent
LiteralAccentColor,
RadixThemesComponent,
)
CalloutVariant = Literal["soft", "surface", "outline"] CalloutVariant = Literal["soft", "surface", "outline"]

View File

@ -6,9 +6,7 @@ from reflex.components.core.breakpoints import Responsive
from reflex.components.el import elements from reflex.components.el import elements
from reflex.vars.base import Var from reflex.vars.base import Var
from ..base import ( from ..base import RadixThemesComponent
RadixThemesComponent,
)
class Card(elements.Div, RadixThemesComponent): class Card(elements.Div, RadixThemesComponent):

View File

@ -9,11 +9,7 @@ from reflex.components.radix.themes.typography.text import Text
from reflex.event import EventHandler, passthrough_event_spec from reflex.event import EventHandler, passthrough_event_spec
from reflex.vars.base import LiteralVar, Var from reflex.vars.base import LiteralVar, Var
from ..base import ( from ..base import LiteralAccentColor, LiteralSpacing, RadixThemesComponent
LiteralAccentColor,
LiteralSpacing,
RadixThemesComponent,
)
LiteralCheckboxSize = Literal["1", "2", "3"] LiteralCheckboxSize = Literal["1", "2", "3"]
LiteralCheckboxVariant = Literal["classic", "surface", "soft"] LiteralCheckboxVariant = Literal["classic", "surface", "soft"]

View File

@ -116,7 +116,9 @@ class Checkbox(RadixThemesComponent):
autofocus: Optional[bool] = None, autofocus: Optional[bool] = None,
custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
on_blur: Optional[EventType[[], BASE_STATE]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None,
on_change: Optional[EventType[[bool], BASE_STATE]] = None, on_change: Optional[
Union[EventType[[], BASE_STATE], EventType[[bool], BASE_STATE]]
] = None,
on_click: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None,
on_context_menu: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None,
on_double_click: Optional[EventType[[], BASE_STATE]] = None, on_double_click: Optional[EventType[[], BASE_STATE]] = None,
@ -264,7 +266,9 @@ class HighLevelCheckbox(RadixThemesComponent):
autofocus: Optional[bool] = None, autofocus: Optional[bool] = None,
custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
on_blur: Optional[EventType[[], BASE_STATE]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None,
on_change: Optional[EventType[[bool], BASE_STATE]] = None, on_change: Optional[
Union[EventType[[], BASE_STATE], EventType[[bool], BASE_STATE]]
] = None,
on_click: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None,
on_context_menu: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None,
on_double_click: Optional[EventType[[], BASE_STATE]] = None, on_double_click: Optional[EventType[[], BASE_STATE]] = None,
@ -409,7 +413,9 @@ class CheckboxNamespace(ComponentNamespace):
autofocus: Optional[bool] = None, autofocus: Optional[bool] = None,
custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
on_blur: Optional[EventType[[], BASE_STATE]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None,
on_change: Optional[EventType[[bool], BASE_STATE]] = None, on_change: Optional[
Union[EventType[[], BASE_STATE], EventType[[bool], BASE_STATE]]
] = None,
on_click: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None,
on_context_menu: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None,
on_double_click: Optional[EventType[[], BASE_STATE]] = None, on_double_click: Optional[EventType[[], BASE_STATE]] = None,

View File

@ -7,10 +7,7 @@ from reflex.components.core.breakpoints import Responsive
from reflex.event import EventHandler, no_args_event_spec, passthrough_event_spec from reflex.event import EventHandler, no_args_event_spec, passthrough_event_spec
from reflex.vars.base import Var from reflex.vars.base import Var
from ..base import ( from ..base import LiteralAccentColor, RadixThemesComponent
LiteralAccentColor,
RadixThemesComponent,
)
LiteralDirType = Literal["ltr", "rtl"] LiteralDirType = Literal["ltr", "rtl"]

View File

@ -47,7 +47,9 @@ class ContextMenuRoot(RadixThemesComponent):
on_mouse_out: Optional[EventType[[], BASE_STATE]] = None, on_mouse_out: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_over: Optional[EventType[[], BASE_STATE]] = None, on_mouse_over: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_up: Optional[EventType[[], BASE_STATE]] = None, on_mouse_up: Optional[EventType[[], BASE_STATE]] = None,
on_open_change: Optional[EventType[[bool], BASE_STATE]] = None, on_open_change: Optional[
Union[EventType[[], BASE_STATE], EventType[[bool], BASE_STATE]]
] = None,
on_scroll: Optional[EventType[[], BASE_STATE]] = None, on_scroll: Optional[EventType[[], BASE_STATE]] = None,
on_unmount: Optional[EventType[[], BASE_STATE]] = None, on_unmount: Optional[EventType[[], BASE_STATE]] = None,
**props, **props,
@ -330,7 +332,9 @@ class ContextMenuSub(RadixThemesComponent):
on_mouse_out: Optional[EventType[[], BASE_STATE]] = None, on_mouse_out: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_over: Optional[EventType[[], BASE_STATE]] = None, on_mouse_over: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_up: Optional[EventType[[], BASE_STATE]] = None, on_mouse_up: Optional[EventType[[], BASE_STATE]] = None,
on_open_change: Optional[EventType[[bool], BASE_STATE]] = None, on_open_change: Optional[
Union[EventType[[], BASE_STATE], EventType[[bool], BASE_STATE]]
] = None,
on_scroll: Optional[EventType[[], BASE_STATE]] = None, on_scroll: Optional[EventType[[], BASE_STATE]] = None,
on_unmount: Optional[EventType[[], BASE_STATE]] = None, on_unmount: Optional[EventType[[], BASE_STATE]] = None,
**props, **props,

View File

@ -8,10 +8,7 @@ from reflex.components.el import elements
from reflex.event import EventHandler, no_args_event_spec, passthrough_event_spec from reflex.event import EventHandler, no_args_event_spec, passthrough_event_spec
from reflex.vars.base import Var from reflex.vars.base import Var
from ..base import ( from ..base import RadixThemesComponent, RadixThemesTriggerComponent
RadixThemesComponent,
RadixThemesTriggerComponent,
)
class DialogRoot(RadixThemesComponent): class DialogRoot(RadixThemesComponent):

View File

@ -41,7 +41,9 @@ class DialogRoot(RadixThemesComponent):
on_mouse_out: Optional[EventType[[], BASE_STATE]] = None, on_mouse_out: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_over: Optional[EventType[[], BASE_STATE]] = None, on_mouse_over: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_up: Optional[EventType[[], BASE_STATE]] = None, on_mouse_up: Optional[EventType[[], BASE_STATE]] = None,
on_open_change: Optional[EventType[[bool], BASE_STATE]] = None, on_open_change: Optional[
Union[EventType[[], BASE_STATE], EventType[[bool], BASE_STATE]]
] = None,
on_scroll: Optional[EventType[[], BASE_STATE]] = None, on_scroll: Optional[EventType[[], BASE_STATE]] = None,
on_unmount: Optional[EventType[[], BASE_STATE]] = None, on_unmount: Optional[EventType[[], BASE_STATE]] = None,
**props, **props,
@ -391,7 +393,9 @@ class Dialog(ComponentNamespace):
on_mouse_out: Optional[EventType[[], BASE_STATE]] = None, on_mouse_out: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_over: Optional[EventType[[], BASE_STATE]] = None, on_mouse_over: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_up: Optional[EventType[[], BASE_STATE]] = None, on_mouse_up: Optional[EventType[[], BASE_STATE]] = None,
on_open_change: Optional[EventType[[bool], BASE_STATE]] = None, on_open_change: Optional[
Union[EventType[[], BASE_STATE], EventType[[bool], BASE_STATE]]
] = None,
on_scroll: Optional[EventType[[], BASE_STATE]] = None, on_scroll: Optional[EventType[[], BASE_STATE]] = None,
on_unmount: Optional[EventType[[], BASE_STATE]] = None, on_unmount: Optional[EventType[[], BASE_STATE]] = None,
**props, **props,

View File

@ -7,11 +7,7 @@ from reflex.components.core.breakpoints import Responsive
from reflex.event import EventHandler, no_args_event_spec, passthrough_event_spec from reflex.event import EventHandler, no_args_event_spec, passthrough_event_spec
from reflex.vars.base import Var from reflex.vars.base import Var
from ..base import ( from ..base import LiteralAccentColor, RadixThemesComponent, RadixThemesTriggerComponent
LiteralAccentColor,
RadixThemesComponent,
RadixThemesTriggerComponent,
)
LiteralDirType = Literal["ltr", "rtl"] LiteralDirType = Literal["ltr", "rtl"]

View File

@ -49,7 +49,9 @@ class DropdownMenuRoot(RadixThemesComponent):
on_mouse_out: Optional[EventType[[], BASE_STATE]] = None, on_mouse_out: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_over: Optional[EventType[[], BASE_STATE]] = None, on_mouse_over: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_up: Optional[EventType[[], BASE_STATE]] = None, on_mouse_up: Optional[EventType[[], BASE_STATE]] = None,
on_open_change: Optional[EventType[[bool], BASE_STATE]] = None, on_open_change: Optional[
Union[EventType[[], BASE_STATE], EventType[[bool], BASE_STATE]]
] = None,
on_scroll: Optional[EventType[[], BASE_STATE]] = None, on_scroll: Optional[EventType[[], BASE_STATE]] = None,
on_unmount: Optional[EventType[[], BASE_STATE]] = None, on_unmount: Optional[EventType[[], BASE_STATE]] = None,
**props, **props,
@ -367,7 +369,9 @@ class DropdownMenuSub(RadixThemesComponent):
on_mouse_out: Optional[EventType[[], BASE_STATE]] = None, on_mouse_out: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_over: Optional[EventType[[], BASE_STATE]] = None, on_mouse_over: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_up: Optional[EventType[[], BASE_STATE]] = None, on_mouse_up: Optional[EventType[[], BASE_STATE]] = None,
on_open_change: Optional[EventType[[bool], BASE_STATE]] = None, on_open_change: Optional[
Union[EventType[[], BASE_STATE], EventType[[bool], BASE_STATE]]
] = None,
on_scroll: Optional[EventType[[], BASE_STATE]] = None, on_scroll: Optional[EventType[[], BASE_STATE]] = None,
on_unmount: Optional[EventType[[], BASE_STATE]] = None, on_unmount: Optional[EventType[[], BASE_STATE]] = None,
**props, **props,

View File

@ -8,10 +8,7 @@ from reflex.components.el import elements
from reflex.event import EventHandler, passthrough_event_spec from reflex.event import EventHandler, passthrough_event_spec
from reflex.vars.base import Var from reflex.vars.base import Var
from ..base import ( from ..base import RadixThemesComponent, RadixThemesTriggerComponent
RadixThemesComponent,
RadixThemesTriggerComponent,
)
class HoverCardRoot(RadixThemesComponent): class HoverCardRoot(RadixThemesComponent):

View File

@ -43,7 +43,9 @@ class HoverCardRoot(RadixThemesComponent):
on_mouse_out: Optional[EventType[[], BASE_STATE]] = None, on_mouse_out: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_over: Optional[EventType[[], BASE_STATE]] = None, on_mouse_over: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_up: Optional[EventType[[], BASE_STATE]] = None, on_mouse_up: Optional[EventType[[], BASE_STATE]] = None,
on_open_change: Optional[EventType[[bool], BASE_STATE]] = None, on_open_change: Optional[
Union[EventType[[], BASE_STATE], EventType[[bool], BASE_STATE]]
] = None,
on_scroll: Optional[EventType[[], BASE_STATE]] = None, on_scroll: Optional[EventType[[], BASE_STATE]] = None,
on_unmount: Optional[EventType[[], BASE_STATE]] = None, on_unmount: Optional[EventType[[], BASE_STATE]] = None,
**props, **props,
@ -286,7 +288,9 @@ class HoverCard(ComponentNamespace):
on_mouse_out: Optional[EventType[[], BASE_STATE]] = None, on_mouse_out: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_over: Optional[EventType[[], BASE_STATE]] = None, on_mouse_over: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_up: Optional[EventType[[], BASE_STATE]] = None, on_mouse_up: Optional[EventType[[], BASE_STATE]] = None,
on_open_change: Optional[EventType[[bool], BASE_STATE]] = None, on_open_change: Optional[
Union[EventType[[], BASE_STATE], EventType[[bool], BASE_STATE]]
] = None,
on_scroll: Optional[EventType[[], BASE_STATE]] = None, on_scroll: Optional[EventType[[], BASE_STATE]] = None,
on_unmount: Optional[EventType[[], BASE_STATE]] = None, on_unmount: Optional[EventType[[], BASE_STATE]] = None,
**props, **props,

View File

@ -11,10 +11,7 @@ from reflex.event import BASE_STATE, EventType
from reflex.style import Style from reflex.style import Style
from reflex.vars.base import Var from reflex.vars.base import Var
from ..base import ( from ..base import RadixLoadingProp, RadixThemesComponent
RadixLoadingProp,
RadixThemesComponent,
)
LiteralButtonSize = Literal["1", "2", "3", "4"] LiteralButtonSize = Literal["1", "2", "3", "4"]

View File

@ -6,9 +6,7 @@ from reflex.components.core.breakpoints import Responsive
from reflex.components.el import elements from reflex.components.el import elements
from reflex.vars.base import Var from reflex.vars.base import Var
from ..base import ( from ..base import RadixThemesComponent
RadixThemesComponent,
)
LiteralButtonSize = Literal["1", "2", "3", "4"] LiteralButtonSize = Literal["1", "2", "3", "4"]

View File

@ -8,10 +8,7 @@ from reflex.components.el import elements
from reflex.event import EventHandler, no_args_event_spec, passthrough_event_spec from reflex.event import EventHandler, no_args_event_spec, passthrough_event_spec
from reflex.vars.base import Var from reflex.vars.base import Var
from ..base import ( from ..base import RadixThemesComponent, RadixThemesTriggerComponent
RadixThemesComponent,
RadixThemesTriggerComponent,
)
class PopoverRoot(RadixThemesComponent): class PopoverRoot(RadixThemesComponent):

View File

@ -42,7 +42,9 @@ class PopoverRoot(RadixThemesComponent):
on_mouse_out: Optional[EventType[[], BASE_STATE]] = None, on_mouse_out: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_over: Optional[EventType[[], BASE_STATE]] = None, on_mouse_over: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_up: Optional[EventType[[], BASE_STATE]] = None, on_mouse_up: Optional[EventType[[], BASE_STATE]] = None,
on_open_change: Optional[EventType[[bool], BASE_STATE]] = None, on_open_change: Optional[
Union[EventType[[], BASE_STATE], EventType[[bool], BASE_STATE]]
] = None,
on_scroll: Optional[EventType[[], BASE_STATE]] = None, on_scroll: Optional[EventType[[], BASE_STATE]] = None,
on_unmount: Optional[EventType[[], BASE_STATE]] = None, on_unmount: Optional[EventType[[], BASE_STATE]] = None,
**props, **props,

View File

@ -177,7 +177,9 @@ class RadioCardsRoot(RadixThemesComponent):
on_mouse_up: Optional[EventType[[], BASE_STATE]] = None, on_mouse_up: Optional[EventType[[], BASE_STATE]] = None,
on_scroll: Optional[EventType[[], BASE_STATE]] = None, on_scroll: Optional[EventType[[], BASE_STATE]] = None,
on_unmount: Optional[EventType[[], BASE_STATE]] = None, on_unmount: Optional[EventType[[], BASE_STATE]] = None,
on_value_change: Optional[EventType[[str], BASE_STATE]] = None, on_value_change: Optional[
Union[EventType[[], BASE_STATE], EventType[[str], BASE_STATE]]
] = None,
**props, **props,
) -> "RadioCardsRoot": ) -> "RadioCardsRoot":
"""Create a new component instance. """Create a new component instance.

View File

@ -14,11 +14,7 @@ from reflex.utils import types
from reflex.vars.base import LiteralVar, Var from reflex.vars.base import LiteralVar, Var
from reflex.vars.sequence import StringVar from reflex.vars.sequence import StringVar
from ..base import ( from ..base import LiteralAccentColor, LiteralSpacing, RadixThemesComponent
LiteralAccentColor,
LiteralSpacing,
RadixThemesComponent,
)
LiteralFlexDirection = Literal["row", "column", "row-reverse", "column-reverse"] LiteralFlexDirection = Literal["row", "column", "row-reverse", "column-reverse"]

View File

@ -113,7 +113,9 @@ class RadioGroupRoot(RadixThemesComponent):
autofocus: Optional[bool] = None, autofocus: Optional[bool] = None,
custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
on_blur: Optional[EventType[[], BASE_STATE]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None,
on_change: Optional[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_click: Optional[EventType[[], BASE_STATE]] = None,
on_context_menu: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None,
on_double_click: Optional[EventType[[], BASE_STATE]] = None, on_double_click: Optional[EventType[[], BASE_STATE]] = None,

View File

@ -4,9 +4,7 @@ from typing import Literal
from reflex.vars.base import Var from reflex.vars.base import Var
from ..base import ( from ..base import RadixThemesComponent
RadixThemesComponent,
)
class ScrollArea(RadixThemesComponent): class ScrollArea(RadixThemesComponent):

View File

@ -117,7 +117,9 @@ class SegmentedControlRoot(RadixThemesComponent):
autofocus: Optional[bool] = None, autofocus: Optional[bool] = None,
custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
on_blur: Optional[EventType[[], BASE_STATE]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None,
on_change: Optional[EventType[[str | List[str]], BASE_STATE]] = None, on_change: Optional[
Union[EventType[[], BASE_STATE], EventType[[str | List[str]], BASE_STATE]]
] = None,
on_click: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None,
on_context_menu: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None,
on_double_click: Optional[EventType[[], BASE_STATE]] = None, on_double_click: Optional[EventType[[], BASE_STATE]] = None,

View File

@ -8,11 +8,7 @@ from reflex.components.core.breakpoints import Responsive
from reflex.event import no_args_event_spec, passthrough_event_spec from reflex.event import no_args_event_spec, passthrough_event_spec
from reflex.vars.base import Var from reflex.vars.base import Var
from ..base import ( from ..base import LiteralAccentColor, LiteralRadius, RadixThemesComponent
LiteralAccentColor,
LiteralRadius,
RadixThemesComponent,
)
class SelectRoot(RadixThemesComponent): class SelectRoot(RadixThemesComponent):

View File

@ -44,7 +44,9 @@ class SelectRoot(RadixThemesComponent):
autofocus: Optional[bool] = None, autofocus: Optional[bool] = None,
custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
on_blur: Optional[EventType[[], BASE_STATE]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None,
on_change: Optional[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_click: Optional[EventType[[], BASE_STATE]] = None,
on_context_menu: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None,
on_double_click: Optional[EventType[[], BASE_STATE]] = None, on_double_click: Optional[EventType[[], BASE_STATE]] = None,
@ -57,7 +59,9 @@ class SelectRoot(RadixThemesComponent):
on_mouse_out: Optional[EventType[[], BASE_STATE]] = None, on_mouse_out: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_over: Optional[EventType[[], BASE_STATE]] = None, on_mouse_over: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_up: Optional[EventType[[], BASE_STATE]] = None, on_mouse_up: Optional[EventType[[], BASE_STATE]] = None,
on_open_change: Optional[EventType[[bool], BASE_STATE]] = None, on_open_change: Optional[
Union[EventType[[], BASE_STATE], EventType[[bool], BASE_STATE]]
] = None,
on_scroll: Optional[EventType[[], BASE_STATE]] = None, on_scroll: Optional[EventType[[], BASE_STATE]] = None,
on_unmount: Optional[EventType[[], BASE_STATE]] = None, on_unmount: Optional[EventType[[], BASE_STATE]] = None,
**props, **props,
@ -685,7 +689,9 @@ class HighLevelSelect(SelectRoot):
autofocus: Optional[bool] = None, autofocus: Optional[bool] = None,
custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
on_blur: Optional[EventType[[], BASE_STATE]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None,
on_change: Optional[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_click: Optional[EventType[[], BASE_STATE]] = None,
on_context_menu: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None,
on_double_click: Optional[EventType[[], BASE_STATE]] = None, on_double_click: Optional[EventType[[], BASE_STATE]] = None,
@ -698,7 +704,9 @@ class HighLevelSelect(SelectRoot):
on_mouse_out: Optional[EventType[[], BASE_STATE]] = None, on_mouse_out: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_over: Optional[EventType[[], BASE_STATE]] = None, on_mouse_over: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_up: Optional[EventType[[], BASE_STATE]] = None, on_mouse_up: Optional[EventType[[], BASE_STATE]] = None,
on_open_change: Optional[EventType[[bool], BASE_STATE]] = None, on_open_change: Optional[
Union[EventType[[], BASE_STATE], EventType[[bool], BASE_STATE]]
] = None,
on_scroll: Optional[EventType[[], BASE_STATE]] = None, on_scroll: Optional[EventType[[], BASE_STATE]] = None,
on_unmount: Optional[EventType[[], BASE_STATE]] = None, on_unmount: Optional[EventType[[], BASE_STATE]] = None,
**props, **props,
@ -861,7 +869,9 @@ class Select(ComponentNamespace):
autofocus: Optional[bool] = None, autofocus: Optional[bool] = None,
custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
on_blur: Optional[EventType[[], BASE_STATE]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None,
on_change: Optional[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_click: Optional[EventType[[], BASE_STATE]] = None,
on_context_menu: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None,
on_double_click: Optional[EventType[[], BASE_STATE]] = None, on_double_click: Optional[EventType[[], BASE_STATE]] = None,
@ -874,7 +884,9 @@ class Select(ComponentNamespace):
on_mouse_out: Optional[EventType[[], BASE_STATE]] = None, on_mouse_out: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_over: Optional[EventType[[], BASE_STATE]] = None, on_mouse_over: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_up: Optional[EventType[[], BASE_STATE]] = None, on_mouse_up: Optional[EventType[[], BASE_STATE]] = None,
on_open_change: Optional[EventType[[bool], BASE_STATE]] = None, on_open_change: Optional[
Union[EventType[[], BASE_STATE], EventType[[bool], BASE_STATE]]
] = None,
on_scroll: Optional[EventType[[], BASE_STATE]] = None, on_scroll: Optional[EventType[[], BASE_STATE]] = None,
on_unmount: Optional[EventType[[], BASE_STATE]] = None, on_unmount: Optional[EventType[[], BASE_STATE]] = None,
**props, **props,

View File

@ -5,10 +5,7 @@ from typing import Literal
from reflex.components.core.breakpoints import Responsive from reflex.components.core.breakpoints import Responsive
from reflex.vars.base import LiteralVar, Var from reflex.vars.base import LiteralVar, Var
from ..base import ( from ..base import LiteralAccentColor, RadixThemesComponent
LiteralAccentColor,
RadixThemesComponent,
)
LiteralSeperatorSize = Literal["1", "2", "3", "4"] LiteralSeperatorSize = Literal["1", "2", "3", "4"]

View File

@ -9,10 +9,7 @@ from reflex.components.core.breakpoints import Responsive
from reflex.event import EventHandler, passthrough_event_spec from reflex.event import EventHandler, passthrough_event_spec
from reflex.vars.base import Var from reflex.vars.base import Var
from ..base import ( from ..base import LiteralAccentColor, RadixThemesComponent
LiteralAccentColor,
RadixThemesComponent,
)
on_value_event_spec = ( on_value_event_spec = (
passthrough_event_spec(list[Union[int, float]]), passthrough_event_spec(list[Union[int, float]]),

View File

@ -142,9 +142,12 @@ class Slider(RadixThemesComponent):
on_blur: Optional[EventType[[], BASE_STATE]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None,
on_change: Optional[ on_change: Optional[
Union[ Union[
Union[
EventType[[], BASE_STATE],
EventType[[list[Union[int, float]]], BASE_STATE], EventType[[list[Union[int, float]]], BASE_STATE],
EventType[[list[int]], BASE_STATE], ],
EventType[[list[float]], BASE_STATE], Union[EventType[[], BASE_STATE], EventType[[list[int]], BASE_STATE]],
Union[EventType[[], BASE_STATE], EventType[[list[float]], BASE_STATE]],
] ]
] = None, ] = None,
on_click: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None,
@ -163,9 +166,12 @@ class Slider(RadixThemesComponent):
on_unmount: Optional[EventType[[], BASE_STATE]] = None, on_unmount: Optional[EventType[[], BASE_STATE]] = None,
on_value_commit: Optional[ on_value_commit: Optional[
Union[ Union[
Union[
EventType[[], BASE_STATE],
EventType[[list[Union[int, float]]], BASE_STATE], EventType[[list[Union[int, float]]], BASE_STATE],
EventType[[list[int]], BASE_STATE], ],
EventType[[list[float]], BASE_STATE], Union[EventType[[], BASE_STATE], EventType[[list[int]], BASE_STATE]],
Union[EventType[[], BASE_STATE], EventType[[list[float]], BASE_STATE]],
] ]
] = None, ] = None,
**props, **props,

View File

@ -5,10 +5,7 @@ from typing import Literal
from reflex.components.core.breakpoints import Responsive from reflex.components.core.breakpoints import Responsive
from reflex.vars.base import Var from reflex.vars.base import Var
from ..base import ( from ..base import RadixLoadingProp, RadixThemesComponent
RadixLoadingProp,
RadixThemesComponent,
)
LiteralSpinnerSize = Literal["1", "2", "3"] LiteralSpinnerSize = Literal["1", "2", "3"]

View File

@ -6,10 +6,7 @@ from reflex.components.core.breakpoints import Responsive
from reflex.event import EventHandler, passthrough_event_spec from reflex.event import EventHandler, passthrough_event_spec
from reflex.vars.base import Var from reflex.vars.base import Var
from ..base import ( from ..base import LiteralAccentColor, RadixThemesComponent
LiteralAccentColor,
RadixThemesComponent,
)
LiteralSwitchSize = Literal["1", "2", "3"] LiteralSwitchSize = Literal["1", "2", "3"]

View File

@ -119,7 +119,9 @@ class Switch(RadixThemesComponent):
autofocus: Optional[bool] = None, autofocus: Optional[bool] = None,
custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
on_blur: Optional[EventType[[], BASE_STATE]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None,
on_change: Optional[EventType[[bool], BASE_STATE]] = None, on_change: Optional[
Union[EventType[[], BASE_STATE], EventType[[bool], BASE_STATE]]
] = None,
on_click: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None,
on_context_menu: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None,
on_double_click: Optional[EventType[[], BASE_STATE]] = None, on_double_click: Optional[EventType[[], BASE_STATE]] = None,

View File

@ -7,9 +7,7 @@ from reflex.components.core.breakpoints import Responsive
from reflex.components.el import elements from reflex.components.el import elements
from reflex.vars.base import Var from reflex.vars.base import Var
from ..base import ( from ..base import RadixThemesComponent
RadixThemesComponent,
)
class TableRoot(elements.Table, RadixThemesComponent): class TableRoot(elements.Table, RadixThemesComponent):

View File

@ -10,10 +10,7 @@ from reflex.components.core.colors import color
from reflex.event import EventHandler, passthrough_event_spec from reflex.event import EventHandler, passthrough_event_spec
from reflex.vars.base import Var from reflex.vars.base import Var
from ..base import ( from ..base import LiteralAccentColor, RadixThemesComponent
LiteralAccentColor,
RadixThemesComponent,
)
vertical_orientation_css = "&[data-orientation='vertical']" vertical_orientation_css = "&[data-orientation='vertical']"

View File

@ -41,7 +41,9 @@ class TabsRoot(RadixThemesComponent):
autofocus: Optional[bool] = None, autofocus: Optional[bool] = None,
custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
on_blur: Optional[EventType[[], BASE_STATE]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None,
on_change: Optional[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_click: Optional[EventType[[], BASE_STATE]] = None,
on_context_menu: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None,
on_double_click: Optional[EventType[[], BASE_STATE]] = None, on_double_click: Optional[EventType[[], BASE_STATE]] = None,
@ -341,7 +343,9 @@ class Tabs(ComponentNamespace):
autofocus: Optional[bool] = None, autofocus: Optional[bool] = None,
custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
on_blur: Optional[EventType[[], BASE_STATE]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None,
on_change: Optional[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_click: Optional[EventType[[], BASE_STATE]] = None,
on_context_menu: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None,
on_double_click: Optional[EventType[[], BASE_STATE]] = None, on_double_click: Optional[EventType[[], BASE_STATE]] = None,

View File

@ -8,11 +8,7 @@ from reflex.components.core.debounce import DebounceInput
from reflex.components.el import elements from reflex.components.el import elements
from reflex.vars.base import Var from reflex.vars.base import Var
from ..base import ( from ..base import LiteralAccentColor, LiteralRadius, RadixThemesComponent
LiteralAccentColor,
LiteralRadius,
RadixThemesComponent,
)
LiteralTextAreaSize = Literal["1", "2", "3"] LiteralTextAreaSize = Literal["1", "2", "3"]

View File

@ -7,7 +7,7 @@ from typing import Any, Dict, Literal, Optional, Union, overload
from reflex.components.core.breakpoints import Breakpoints from reflex.components.core.breakpoints import Breakpoints
from reflex.components.el import elements from reflex.components.el import elements
from reflex.event import BASE_STATE, EventType from reflex.event import BASE_STATE, EventType, KeyInputInfo
from reflex.style import Style from reflex.style import Style
from reflex.vars.base import Var from reflex.vars.base import Var
@ -168,14 +168,32 @@ class TextArea(RadixThemesComponent, elements.Textarea):
class_name: Optional[Any] = None, class_name: Optional[Any] = None,
autofocus: Optional[bool] = None, autofocus: Optional[bool] = None,
custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
on_blur: Optional[EventType[[str], BASE_STATE]] = None, on_blur: Optional[
on_change: Optional[EventType[[str], BASE_STATE]] = None, 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_click: Optional[EventType[[], BASE_STATE]] = None,
on_context_menu: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None,
on_double_click: Optional[EventType[[], BASE_STATE]] = None, on_double_click: Optional[EventType[[], BASE_STATE]] = None,
on_focus: Optional[EventType[[str], BASE_STATE]] = None, on_focus: Optional[
on_key_down: Optional[EventType[[str], BASE_STATE]] = None, Union[EventType[[], BASE_STATE], EventType[[str], BASE_STATE]]
on_key_up: Optional[EventType[[str], BASE_STATE]] = None, ] = 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_mount: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_down: Optional[EventType[[], BASE_STATE]] = None, on_mouse_down: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_enter: Optional[EventType[[], BASE_STATE]] = None, on_mouse_enter: Optional[EventType[[], BASE_STATE]] = None,

View File

@ -11,11 +11,7 @@ from reflex.components.el import elements
from reflex.event import EventHandler, input_event, key_event from reflex.event import EventHandler, input_event, key_event
from reflex.vars.base import Var from reflex.vars.base import Var
from ..base import ( from ..base import LiteralAccentColor, LiteralRadius, RadixThemesComponent
LiteralAccentColor,
LiteralRadius,
RadixThemesComponent,
)
LiteralTextFieldSize = Literal["1", "2", "3"] LiteralTextFieldSize = Literal["1", "2", "3"]
LiteralTextFieldVariant = Literal["classic", "surface", "soft"] LiteralTextFieldVariant = Literal["classic", "surface", "soft"]

View File

@ -8,7 +8,7 @@ from typing import Any, Dict, Literal, Optional, Union, overload
from reflex.components.component import ComponentNamespace from reflex.components.component import ComponentNamespace
from reflex.components.core.breakpoints import Breakpoints from reflex.components.core.breakpoints import Breakpoints
from reflex.components.el import elements from reflex.components.el import elements
from reflex.event import BASE_STATE, EventType from reflex.event import BASE_STATE, EventType, KeyInputInfo
from reflex.style import Style from reflex.style import Style
from reflex.vars.base import Var from reflex.vars.base import Var
@ -149,14 +149,32 @@ class TextFieldRoot(elements.Div, RadixThemesComponent):
class_name: Optional[Any] = None, class_name: Optional[Any] = None,
autofocus: Optional[bool] = None, autofocus: Optional[bool] = None,
custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
on_blur: Optional[EventType[[str], BASE_STATE]] = None, on_blur: Optional[
on_change: Optional[EventType[[str], BASE_STATE]] = None, 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_click: Optional[EventType[[], BASE_STATE]] = None,
on_context_menu: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None,
on_double_click: Optional[EventType[[], BASE_STATE]] = None, on_double_click: Optional[EventType[[], BASE_STATE]] = None,
on_focus: Optional[EventType[[str], BASE_STATE]] = None, on_focus: Optional[
on_key_down: Optional[EventType[[str], BASE_STATE]] = None, Union[EventType[[], BASE_STATE], EventType[[str], BASE_STATE]]
on_key_up: Optional[EventType[[str], BASE_STATE]] = None, ] = 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_mount: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_down: Optional[EventType[[], BASE_STATE]] = None, on_mouse_down: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_enter: Optional[EventType[[], BASE_STATE]] = None, on_mouse_enter: Optional[EventType[[], BASE_STATE]] = None,
@ -466,14 +484,32 @@ class TextField(ComponentNamespace):
class_name: Optional[Any] = None, class_name: Optional[Any] = None,
autofocus: Optional[bool] = None, autofocus: Optional[bool] = None,
custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
on_blur: Optional[EventType[[str], BASE_STATE]] = None, on_blur: Optional[
on_change: Optional[EventType[[str], BASE_STATE]] = None, 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_click: Optional[EventType[[], BASE_STATE]] = None,
on_context_menu: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None,
on_double_click: Optional[EventType[[], BASE_STATE]] = None, on_double_click: Optional[EventType[[], BASE_STATE]] = None,
on_focus: Optional[EventType[[str], BASE_STATE]] = None, on_focus: Optional[
on_key_down: Optional[EventType[[str], BASE_STATE]] = None, Union[EventType[[], BASE_STATE], EventType[[str], BASE_STATE]]
on_key_up: Optional[EventType[[str], BASE_STATE]] = None, ] = 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_mount: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_down: Optional[EventType[[], BASE_STATE]] = None, on_mouse_down: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_enter: Optional[EventType[[], BASE_STATE]] = None, on_mouse_enter: Optional[EventType[[], BASE_STATE]] = None,

View File

@ -7,9 +7,7 @@ from reflex.event import EventHandler, no_args_event_spec, passthrough_event_spe
from reflex.utils import format from reflex.utils import format
from reflex.vars.base import Var from reflex.vars.base import Var
from ..base import ( from ..base import RadixThemesComponent
RadixThemesComponent,
)
LiteralSideType = Literal[ LiteralSideType = Literal[
"top", "top",

View File

@ -5,10 +5,7 @@
# ------------------------------------------------------ # ------------------------------------------------------
from typing import Any, Dict, Literal, Optional, Union, overload from typing import Any, Dict, Literal, Optional, Union, overload
from reflex.event import ( from reflex.event import BASE_STATE, EventType
BASE_STATE,
EventType,
)
from reflex.style import Style from reflex.style import Style
from reflex.vars.base import Var from reflex.vars.base import Var
@ -79,7 +76,9 @@ class Tooltip(RadixThemesComponent):
on_mouse_out: Optional[EventType[[], BASE_STATE]] = None, on_mouse_out: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_over: Optional[EventType[[], BASE_STATE]] = None, on_mouse_over: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_up: Optional[EventType[[], BASE_STATE]] = None, on_mouse_up: Optional[EventType[[], BASE_STATE]] = None,
on_open_change: Optional[EventType[[bool], BASE_STATE]] = None, on_open_change: Optional[
Union[EventType[[], BASE_STATE], EventType[[bool], BASE_STATE]]
] = None,
on_pointer_down_outside: Optional[EventType[[], BASE_STATE]] = None, on_pointer_down_outside: Optional[EventType[[], BASE_STATE]] = None,
on_scroll: Optional[EventType[[], BASE_STATE]] = None, on_scroll: Optional[EventType[[], BASE_STATE]] = None,
on_unmount: Optional[EventType[[], BASE_STATE]] = None, on_unmount: Optional[EventType[[], BASE_STATE]] = None,

View File

@ -7,11 +7,7 @@ from typing import Literal
from reflex.components.core.breakpoints import Responsive from reflex.components.core.breakpoints import Responsive
from reflex.vars.base import Var from reflex.vars.base import Var
from ..base import ( from ..base import CommonMarginProps, LiteralSpacing, RadixThemesComponent
CommonMarginProps,
LiteralSpacing,
RadixThemesComponent,
)
LiteralBoolNumber = Literal["0", "1"] LiteralBoolNumber = Literal["0", "1"]

View File

@ -8,12 +8,7 @@ from reflex.components.core.breakpoints import Responsive
from reflex.components.el import elements from reflex.components.el import elements
from reflex.vars.base import Var from reflex.vars.base import Var
from ..base import ( from ..base import LiteralAlign, LiteralJustify, LiteralSpacing, RadixThemesComponent
LiteralAlign,
LiteralJustify,
LiteralSpacing,
RadixThemesComponent,
)
LiteralFlexDirection = Literal["row", "column", "row-reverse", "column-reverse"] LiteralFlexDirection = Literal["row", "column", "row-reverse", "column-reverse"]
LiteralFlexWrap = Literal["nowrap", "wrap", "wrap-reverse"] LiteralFlexWrap = Literal["nowrap", "wrap", "wrap-reverse"]

View File

@ -8,12 +8,7 @@ from reflex.components.core.breakpoints import Responsive
from reflex.components.el import elements from reflex.components.el import elements
from reflex.vars.base import Var from reflex.vars.base import Var
from ..base import ( from ..base import LiteralAlign, LiteralJustify, LiteralSpacing, RadixThemesComponent
LiteralAlign,
LiteralJustify,
LiteralSpacing,
RadixThemesComponent,
)
LiteralGridFlow = Literal["row", "column", "dense", "row-dense", "column-dense"] LiteralGridFlow = Literal["row", "column", "dense", "row-dense", "column-dense"]

View File

@ -9,14 +9,8 @@ from reflex.components.core.breakpoints import Responsive
from reflex.components.el import elements from reflex.components.el import elements
from reflex.vars.base import Var from reflex.vars.base import Var
from ..base import ( from ..base import LiteralAccentColor, RadixThemesComponent
LiteralAccentColor, from .base import LiteralTextSize, LiteralTextWeight
RadixThemesComponent,
)
from .base import (
LiteralTextSize,
LiteralTextWeight,
)
class Blockquote(elements.Blockquote, RadixThemesComponent): class Blockquote(elements.Blockquote, RadixThemesComponent):

View File

@ -9,15 +9,8 @@ from reflex.components.core.breakpoints import Responsive
from reflex.components.el import elements from reflex.components.el import elements
from reflex.vars.base import Var from reflex.vars.base import Var
from ..base import ( from ..base import LiteralAccentColor, LiteralVariant, RadixThemesComponent
LiteralAccentColor, from .base import LiteralTextSize, LiteralTextWeight
LiteralVariant,
RadixThemesComponent,
)
from .base import (
LiteralTextSize,
LiteralTextWeight,
)
class Code(elements.Code, RadixThemesComponent): class Code(elements.Code, RadixThemesComponent):

View File

@ -9,16 +9,8 @@ from reflex.components.core.breakpoints import Responsive
from reflex.components.el import elements from reflex.components.el import elements
from reflex.vars.base import Var from reflex.vars.base import Var
from ..base import ( from ..base import LiteralAccentColor, RadixThemesComponent
LiteralAccentColor, from .base import LiteralTextAlign, LiteralTextSize, LiteralTextTrim, LiteralTextWeight
RadixThemesComponent,
)
from .base import (
LiteralTextAlign,
LiteralTextSize,
LiteralTextTrim,
LiteralTextWeight,
)
class Heading(elements.H1, RadixThemesComponent): class Heading(elements.H1, RadixThemesComponent):

View File

@ -16,15 +16,8 @@ from reflex.components.next.link import NextLink
from reflex.utils.imports import ImportDict from reflex.utils.imports import ImportDict
from reflex.vars.base import Var from reflex.vars.base import Var
from ..base import ( from ..base import LiteralAccentColor, RadixThemesComponent
LiteralAccentColor, from .base import LiteralTextSize, LiteralTextTrim, LiteralTextWeight
RadixThemesComponent,
)
from .base import (
LiteralTextSize,
LiteralTextTrim,
LiteralTextWeight,
)
LiteralLinkUnderline = Literal["auto", "hover", "always", "none"] LiteralLinkUnderline = Literal["auto", "hover", "always", "none"]

View File

@ -12,16 +12,8 @@ from reflex.components.core.breakpoints import Responsive
from reflex.components.el import elements from reflex.components.el import elements
from reflex.vars.base import Var from reflex.vars.base import Var
from ..base import ( from ..base import LiteralAccentColor, RadixThemesComponent
LiteralAccentColor, from .base import LiteralTextAlign, LiteralTextSize, LiteralTextTrim, LiteralTextWeight
RadixThemesComponent,
)
from .base import (
LiteralTextAlign,
LiteralTextSize,
LiteralTextTrim,
LiteralTextWeight,
)
LiteralType = Literal[ LiteralType = Literal[
"p", "p",

View File

@ -42,7 +42,9 @@ class Audio(ReactPlayer):
on_context_menu: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None,
on_disable_pip: Optional[EventType[[], BASE_STATE]] = None, on_disable_pip: Optional[EventType[[], BASE_STATE]] = None,
on_double_click: Optional[EventType[[], BASE_STATE]] = None, on_double_click: Optional[EventType[[], BASE_STATE]] = None,
on_duration: Optional[EventType[[float], BASE_STATE]] = None, on_duration: Optional[
Union[EventType[[], BASE_STATE], EventType[[float], BASE_STATE]]
] = None,
on_enable_pip: Optional[EventType[[], BASE_STATE]] = None, on_enable_pip: Optional[EventType[[], BASE_STATE]] = None,
on_ended: Optional[EventType[[], BASE_STATE]] = None, on_ended: Optional[EventType[[], BASE_STATE]] = None,
on_error: Optional[EventType[[], BASE_STATE]] = None, on_error: Optional[EventType[[], BASE_STATE]] = None,
@ -60,13 +62,18 @@ class Audio(ReactPlayer):
on_playback_quality_change: Optional[EventType[[], BASE_STATE]] = None, on_playback_quality_change: Optional[EventType[[], BASE_STATE]] = None,
on_playback_rate_change: Optional[EventType[[], BASE_STATE]] = None, on_playback_rate_change: Optional[EventType[[], BASE_STATE]] = None,
on_progress: Optional[ on_progress: Optional[
Union[
EventType[[], BASE_STATE],
EventType[ EventType[
[reflex.components.react_player.react_player.Progress], BASE_STATE [reflex.components.react_player.react_player.Progress], BASE_STATE
],
] ]
] = None, ] = None,
on_ready: Optional[EventType[[], BASE_STATE]] = None, on_ready: Optional[EventType[[], BASE_STATE]] = None,
on_scroll: Optional[EventType[[], BASE_STATE]] = None, on_scroll: Optional[EventType[[], BASE_STATE]] = None,
on_seek: Optional[EventType[[float], BASE_STATE]] = None, on_seek: Optional[
Union[EventType[[], BASE_STATE], EventType[[float], BASE_STATE]]
] = None,
on_start: Optional[EventType[[], BASE_STATE]] = None, on_start: Optional[EventType[[], BASE_STATE]] = None,
on_unmount: Optional[EventType[[], BASE_STATE]] = None, on_unmount: Optional[EventType[[], BASE_STATE]] = None,
**props, **props,

View File

@ -47,7 +47,9 @@ class ReactPlayer(NoSSRComponent):
on_context_menu: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None,
on_disable_pip: Optional[EventType[[], BASE_STATE]] = None, on_disable_pip: Optional[EventType[[], BASE_STATE]] = None,
on_double_click: Optional[EventType[[], BASE_STATE]] = None, on_double_click: Optional[EventType[[], BASE_STATE]] = None,
on_duration: Optional[EventType[[float], BASE_STATE]] = None, on_duration: Optional[
Union[EventType[[], BASE_STATE], EventType[[float], BASE_STATE]]
] = None,
on_enable_pip: Optional[EventType[[], BASE_STATE]] = None, on_enable_pip: Optional[EventType[[], BASE_STATE]] = None,
on_ended: Optional[EventType[[], BASE_STATE]] = None, on_ended: Optional[EventType[[], BASE_STATE]] = None,
on_error: Optional[EventType[[], BASE_STATE]] = None, on_error: Optional[EventType[[], BASE_STATE]] = None,
@ -64,10 +66,14 @@ class ReactPlayer(NoSSRComponent):
on_play: Optional[EventType[[], BASE_STATE]] = None, on_play: Optional[EventType[[], BASE_STATE]] = None,
on_playback_quality_change: Optional[EventType[[], BASE_STATE]] = None, on_playback_quality_change: Optional[EventType[[], BASE_STATE]] = None,
on_playback_rate_change: Optional[EventType[[], BASE_STATE]] = None, on_playback_rate_change: Optional[EventType[[], BASE_STATE]] = None,
on_progress: Optional[EventType[[Progress], BASE_STATE]] = None, on_progress: Optional[
Union[EventType[[], BASE_STATE], EventType[[Progress], BASE_STATE]]
] = None,
on_ready: Optional[EventType[[], BASE_STATE]] = None, on_ready: Optional[EventType[[], BASE_STATE]] = None,
on_scroll: Optional[EventType[[], BASE_STATE]] = None, on_scroll: Optional[EventType[[], BASE_STATE]] = None,
on_seek: Optional[EventType[[float], BASE_STATE]] = None, on_seek: Optional[
Union[EventType[[], BASE_STATE], EventType[[float], BASE_STATE]]
] = None,
on_start: Optional[EventType[[], BASE_STATE]] = None, on_start: Optional[EventType[[], BASE_STATE]] = None,
on_unmount: Optional[EventType[[], BASE_STATE]] = None, on_unmount: Optional[EventType[[], BASE_STATE]] = None,
**props, **props,

View File

@ -42,7 +42,9 @@ class Video(ReactPlayer):
on_context_menu: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None,
on_disable_pip: Optional[EventType[[], BASE_STATE]] = None, on_disable_pip: Optional[EventType[[], BASE_STATE]] = None,
on_double_click: Optional[EventType[[], BASE_STATE]] = None, on_double_click: Optional[EventType[[], BASE_STATE]] = None,
on_duration: Optional[EventType[[float], BASE_STATE]] = None, on_duration: Optional[
Union[EventType[[], BASE_STATE], EventType[[float], BASE_STATE]]
] = None,
on_enable_pip: Optional[EventType[[], BASE_STATE]] = None, on_enable_pip: Optional[EventType[[], BASE_STATE]] = None,
on_ended: Optional[EventType[[], BASE_STATE]] = None, on_ended: Optional[EventType[[], BASE_STATE]] = None,
on_error: Optional[EventType[[], BASE_STATE]] = None, on_error: Optional[EventType[[], BASE_STATE]] = None,
@ -60,13 +62,18 @@ class Video(ReactPlayer):
on_playback_quality_change: Optional[EventType[[], BASE_STATE]] = None, on_playback_quality_change: Optional[EventType[[], BASE_STATE]] = None,
on_playback_rate_change: Optional[EventType[[], BASE_STATE]] = None, on_playback_rate_change: Optional[EventType[[], BASE_STATE]] = None,
on_progress: Optional[ on_progress: Optional[
Union[
EventType[[], BASE_STATE],
EventType[ EventType[
[reflex.components.react_player.react_player.Progress], BASE_STATE [reflex.components.react_player.react_player.Progress], BASE_STATE
],
] ]
] = None, ] = None,
on_ready: Optional[EventType[[], BASE_STATE]] = None, on_ready: Optional[EventType[[], BASE_STATE]] = None,
on_scroll: Optional[EventType[[], BASE_STATE]] = None, on_scroll: Optional[EventType[[], BASE_STATE]] = None,
on_seek: Optional[EventType[[float], BASE_STATE]] = None, on_seek: Optional[
Union[EventType[[], BASE_STATE], EventType[[float], BASE_STATE]]
] = None,
on_start: Optional[EventType[[], BASE_STATE]] = None, on_start: Optional[EventType[[], BASE_STATE]] = None,
on_unmount: Optional[EventType[[], BASE_STATE]] = None, on_unmount: Optional[EventType[[], BASE_STATE]] = None,
**props, **props,

View File

@ -10,9 +10,7 @@ from reflex.event import BASE_STATE, EventType
from reflex.style import Style from reflex.style import Style
from reflex.vars.base import Var from reflex.vars.base import Var
from .recharts import ( from .recharts import Recharts
Recharts,
)
class Axis(Recharts): class Axis(Recharts):
@overload @overload

View File

@ -10,9 +10,7 @@ from reflex.event import BASE_STATE, EventType
from reflex.style import Style from reflex.style import Style
from reflex.vars.base import Var from reflex.vars.base import Var
from .recharts import ( from .recharts import RechartsCharts
RechartsCharts,
)
class ChartBase(RechartsCharts): class ChartBase(RechartsCharts):
@overload @overload

View File

@ -11,9 +11,7 @@ from reflex.event import BASE_STATE, EventType
from reflex.style import Style from reflex.style import Style
from reflex.vars.base import Var from reflex.vars.base import Var
from .recharts import ( from .recharts import Recharts
Recharts,
)
class ResponsiveContainer(Recharts, MemoizationLeaf): class ResponsiveContainer(Recharts, MemoizationLeaf):
@overload @overload

View File

@ -10,9 +10,7 @@ from reflex.event import BASE_STATE, EventType
from reflex.style import Style from reflex.style import Style
from reflex.vars.base import Var from reflex.vars.base import Var
from .recharts import ( from .recharts import Recharts
Recharts,
)
class Pie(Recharts): class Pie(Recharts):
def get_event_triggers(self) -> dict[str, Union[Var, Any]]: ... def get_event_triggers(self) -> dict[str, Union[Var, Any]]: ...

View File

@ -127,8 +127,12 @@ class Editor(NoSSRComponent):
class_name: Optional[Any] = None, class_name: Optional[Any] = None,
autofocus: Optional[bool] = None, autofocus: Optional[bool] = None,
custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
on_blur: Optional[EventType[[str], BASE_STATE]] = None, on_blur: Optional[
on_change: Optional[EventType[[str], BASE_STATE]] = None, 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_click: Optional[EventType[[], BASE_STATE]] = None,
on_context_menu: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None,
on_copy: Optional[EventType[[], BASE_STATE]] = None, on_copy: Optional[EventType[[], BASE_STATE]] = None,
@ -136,7 +140,9 @@ class Editor(NoSSRComponent):
on_double_click: Optional[EventType[[], BASE_STATE]] = None, on_double_click: Optional[EventType[[], BASE_STATE]] = None,
on_focus: Optional[EventType[[], BASE_STATE]] = None, on_focus: Optional[EventType[[], BASE_STATE]] = None,
on_input: Optional[EventType[[], BASE_STATE]] = None, on_input: Optional[EventType[[], BASE_STATE]] = None,
on_load: Optional[EventType[[bool], BASE_STATE]] = None, on_load: Optional[
Union[EventType[[], BASE_STATE], EventType[[bool], BASE_STATE]]
] = None,
on_mount: Optional[EventType[[], BASE_STATE]] = None, on_mount: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_down: Optional[EventType[[], BASE_STATE]] = None, on_mouse_down: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_enter: Optional[EventType[[], BASE_STATE]] = None, on_mouse_enter: Optional[EventType[[], BASE_STATE]] = None,
@ -145,11 +151,21 @@ class Editor(NoSSRComponent):
on_mouse_out: Optional[EventType[[], BASE_STATE]] = None, on_mouse_out: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_over: Optional[EventType[[], BASE_STATE]] = None, on_mouse_over: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_up: Optional[EventType[[], BASE_STATE]] = None, on_mouse_up: Optional[EventType[[], BASE_STATE]] = None,
on_paste: Optional[EventType[[str, bool], BASE_STATE]] = None, on_paste: Optional[
Union[
EventType[[], BASE_STATE],
EventType[[str], BASE_STATE],
EventType[[str, bool], BASE_STATE],
]
] = None,
on_scroll: Optional[EventType[[], BASE_STATE]] = None, on_scroll: Optional[EventType[[], BASE_STATE]] = None,
on_unmount: Optional[EventType[[], BASE_STATE]] = None, on_unmount: Optional[EventType[[], BASE_STATE]] = None,
toggle_code_view: Optional[EventType[[bool], BASE_STATE]] = None, toggle_code_view: Optional[
toggle_full_screen: Optional[EventType[[bool], BASE_STATE]] = None, Union[EventType[[], BASE_STATE], EventType[[bool], BASE_STATE]]
] = None,
toggle_full_screen: Optional[
Union[EventType[[], BASE_STATE], EventType[[bool], BASE_STATE]]
] = None,
**props, **props,
) -> "Editor": ) -> "Editor":
"""Create an instance of Editor. No children allowed. """Create an instance of Editor. No children allowed.

View File

@ -4,16 +4,7 @@ from __future__ import annotations
import dataclasses import dataclasses
import inspect import inspect
from typing import ( from typing import TYPE_CHECKING, Any, Callable, Iterable, Tuple, Type, Union, get_args
TYPE_CHECKING,
Any,
Callable,
Iterable,
Tuple,
Type,
Union,
get_args,
)
from reflex.components.tags.tag import Tag from reflex.components.tags.tag import Tag
from reflex.vars import LiteralArrayVar, Var, get_unique_variable_name from reflex.vars import LiteralArrayVar, Var, get_unique_variable_name

View File

@ -41,16 +41,9 @@ from .config import (
GitIgnore, GitIgnore,
RequirementsTxt, RequirementsTxt,
) )
from .custom_components import ( from .custom_components import CustomComponents
CustomComponents,
)
from .event import Endpoint, EventTriggers, SocketEvent from .event import Endpoint, EventTriggers, SocketEvent
from .installer import ( from .installer import Bun, Fnm, Node, PackageJson
Bun,
Fnm,
Node,
PackageJson,
)
from .route import ( from .route import (
ROUTE_NOT_FOUND, ROUTE_NOT_FOUND,
ROUTER, ROUTER,

View File

@ -30,6 +30,7 @@ from typing_extensions import (
ParamSpec, ParamSpec,
Protocol, Protocol,
TypeAliasType, TypeAliasType,
TypedDict,
TypeVar, TypeVar,
get_args, get_args,
get_origin, get_origin,
@ -38,16 +39,10 @@ from typing_extensions import (
from reflex import constants from reflex import constants
from reflex.constants.state import FRONTEND_EVENT_STATE from reflex.constants.state import FRONTEND_EVENT_STATE
from reflex.utils import console, format from reflex.utils import console, format
from reflex.utils.exceptions import ( from reflex.utils.exceptions import EventFnArgMismatch, EventHandlerArgTypeMismatch
EventFnArgMismatch,
EventHandlerArgTypeMismatch,
)
from reflex.utils.types import ArgsSpec, GenericType, typehint_issubclass from reflex.utils.types import ArgsSpec, GenericType, typehint_issubclass
from reflex.vars import VarData from reflex.vars import VarData
from reflex.vars.base import ( from reflex.vars.base import LiteralVar, Var
LiteralVar,
Var,
)
from reflex.vars.function import ( from reflex.vars.function import (
ArgsFunctionOperation, ArgsFunctionOperation,
FunctionStringVar, FunctionStringVar,
@ -448,6 +443,10 @@ class JavasciptKeyboardEvent:
"""Interface for a Javascript KeyboardEvent https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent.""" """Interface for a Javascript KeyboardEvent https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent."""
key: str = "" key: str = ""
altKey: bool = False
ctrlKey: bool = False
metaKey: bool = False
shiftKey: bool = False
def input_event(e: Var[JavascriptInputEvent]) -> Tuple[Var[str]]: def input_event(e: Var[JavascriptInputEvent]) -> Tuple[Var[str]]:
@ -462,7 +461,16 @@ def input_event(e: Var[JavascriptInputEvent]) -> Tuple[Var[str]]:
return (e.target.value,) return (e.target.value,)
def key_event(e: Var[JavasciptKeyboardEvent]) -> Tuple[Var[str]]: class KeyInputInfo(TypedDict):
"""Information about a key input event."""
alt_key: bool
ctrl_key: bool
meta_key: bool
shift_key: bool
def key_event(e: Var[JavasciptKeyboardEvent]) -> Tuple[Var[str], Var[KeyInputInfo]]:
"""Get the key from a keyboard event. """Get the key from a keyboard event.
Args: Args:
@ -471,7 +479,17 @@ def key_event(e: Var[JavasciptKeyboardEvent]) -> Tuple[Var[str]]:
Returns: Returns:
The key from the keyboard event. The key from the keyboard event.
""" """
return (e.key,) return (
e.key,
Var.create(
{
"alt_key": e.altKey,
"ctrl_key": e.ctrlKey,
"meta_key": e.metaKey,
"shift_key": e.shiftKey,
},
),
)
def no_args_event_spec() -> Tuple[()]: def no_args_event_spec() -> Tuple[()]:

View File

@ -10,10 +10,7 @@ from typing import Any, Callable, Union
from reflex import constants from reflex import constants
from reflex.event import EventChain, EventHandler, EventSpec, run_script from reflex.event import EventChain, EventHandler, EventSpec, run_script
from reflex.utils.imports import ImportVar from reflex.utils.imports import ImportVar
from reflex.vars import ( from reflex.vars import VarData, get_unique_variable_name
VarData,
get_unique_variable_name,
)
from reflex.vars.base import LiteralVar, Var from reflex.vars.base import LiteralVar, Var
from reflex.vars.function import FunctionVar from reflex.vars.function import FunctionVar

View File

@ -119,7 +119,9 @@ class DrawerSidebar(DrawerRoot):
class_name: Optional[Any] = None, class_name: Optional[Any] = None,
autofocus: Optional[bool] = None, autofocus: Optional[bool] = None,
custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
on_animation_end: Optional[EventType[[bool], BASE_STATE]] = None, on_animation_end: Optional[
Union[EventType[[], BASE_STATE], EventType[[bool], BASE_STATE]]
] = None,
on_blur: Optional[EventType[[], BASE_STATE]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None,
on_click: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None,
on_context_menu: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None,
@ -133,7 +135,9 @@ class DrawerSidebar(DrawerRoot):
on_mouse_out: Optional[EventType[[], BASE_STATE]] = None, on_mouse_out: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_over: Optional[EventType[[], BASE_STATE]] = None, on_mouse_over: Optional[EventType[[], BASE_STATE]] = None,
on_mouse_up: Optional[EventType[[], BASE_STATE]] = None, on_mouse_up: Optional[EventType[[], BASE_STATE]] = None,
on_open_change: Optional[EventType[[bool], BASE_STATE]] = None, on_open_change: Optional[
Union[EventType[[], BASE_STATE], EventType[[bool], BASE_STATE]]
] = None,
on_scroll: Optional[EventType[[], BASE_STATE]] = None, on_scroll: Optional[EventType[[], BASE_STATE]] = None,
on_unmount: Optional[EventType[[], BASE_STATE]] = None, on_unmount: Optional[EventType[[], BASE_STATE]] = None,
**props, **props,

View File

@ -3,11 +3,7 @@
from typing import Any from typing import Any
from reflex.istate.proxy import ReadOnlyStateProxy from reflex.istate.proxy import ReadOnlyStateProxy
from reflex.state import ( from reflex.state import _split_substate_key, _substate_key, get_state_manager
_split_substate_key,
_substate_key,
get_state_manager,
)
async def get_state(token, state_cls: Any | None = None) -> ReadOnlyStateProxy: async def get_state(token, state_cls: Any | None = None) -> ReadOnlyStateProxy:

View File

@ -11,6 +11,7 @@ import typer
import typer.core import typer.core
from reflex_cli.deployments import deployments_cli from reflex_cli.deployments import deployments_cli
from reflex_cli.utils import dependency from reflex_cli.utils import dependency
from reflex_cli.v2.deployments import hosting_cli
from reflex import constants from reflex import constants
from reflex.config import environment, get_config from reflex.config import environment, get_config
@ -383,6 +384,14 @@ def login(
_login() _login()
@cli.command()
def loginv2(loglevel: constants.LogLevel = typer.Option(config.loglevel)):
"""Authenicate with experimental Reflex hosting service."""
from reflex_cli.v2 import cli as hosting_cli
hosting_cli.login()
@cli.command() @cli.command()
def logout( def logout(
loglevel: constants.LogLevel = typer.Option( loglevel: constants.LogLevel = typer.Option(
@ -399,6 +408,22 @@ def logout(
hosting.delete_token_from_config(include_invitation_code=True) hosting.delete_token_from_config(include_invitation_code=True)
@cli.command()
def logoutv2(
loglevel: constants.LogLevel = typer.Option(
config.loglevel, help="The log level to use."
),
):
"""Log out of access to Reflex hosting service."""
from reflex_cli.v2.utils import hosting
console.set_log_level(loglevel)
hosting.log_out_on_browser()
console.debug("Deleting access token from config locally")
hosting.delete_token_from_config(include_invitation_code=True)
db_cli = typer.Typer() db_cli = typer.Typer()
script_cli = typer.Typer() script_cli = typer.Typer()
@ -599,6 +624,110 @@ def deploy(
) )
@cli.command()
def deployv2(
app_name: str = typer.Option(
config.app_name,
"--app-name",
help="The name of the App to deploy under.",
hidden=True,
),
regions: List[str] = typer.Option(
list(),
"-r",
"--region",
help="The regions to deploy to. For multiple envs, repeat this option, e.g. --region sjc --region iad",
),
envs: List[str] = typer.Option(
list(),
"--env",
help="The environment variables to set: <key>=<value>. For multiple envs, repeat this option, e.g. --env k1=v2 --env k2=v2.",
),
vmtype: Optional[str] = typer.Option(
None,
"--vmtype",
help="Vm type id. Run reflex apps vmtypes list to get options.",
),
hostname: Optional[str] = typer.Option(
None,
"--hostname",
help="The hostname of the frontend.",
hidden=True,
),
interactive: bool = typer.Option(
True,
help="Whether to list configuration options and ask for confirmation.",
),
envfile: Optional[str] = typer.Option(
None,
"--envfile",
help="The path to an env file to use. Will override any envs set manually.",
hidden=True,
),
loglevel: constants.LogLevel = typer.Option(
config.loglevel, help="The log level to use."
),
project: Optional[str] = typer.Option(
None,
"--project",
help="project to deploy to",
hidden=True,
),
token: Optional[str] = typer.Option(
None,
"--token",
help="token to use for auth",
hidden=True,
),
):
"""Deploy the app to the Reflex hosting service."""
from reflex_cli.v2 import cli as hosting_cli
from reflex_cli.v2.utils import dependency
from reflex.utils import export as export_utils
from reflex.utils import prerequisites
# Set the log level.
console.set_log_level(loglevel)
# Only check requirements if interactive.
# There is user interaction for requirements update.
if interactive:
dependency.check_requirements()
# Check if we are set up.
if prerequisites.needs_reinit(frontend=True):
_init(name=config.app_name, loglevel=loglevel)
prerequisites.check_latest_package_version(constants.ReflexHostingCLI.MODULE_NAME)
hosting_cli.deploy(
app_name=app_name,
export_fn=lambda zip_dest_dir,
api_url,
deploy_url,
frontend,
backend,
zipping: export_utils.export(
zip_dest_dir=zip_dest_dir,
api_url=api_url,
deploy_url=deploy_url,
frontend=frontend,
backend=backend,
zipping=zipping,
loglevel=loglevel.subprocess_level(),
),
regions=regions,
envs=envs,
vmtype=vmtype,
envfile=envfile,
hostname=hostname,
interactive=interactive,
loglevel=loglevel.subprocess_level(),
token=token,
project=project,
)
cli.add_typer(db_cli, name="db", help="Subcommands for managing the database schema.") cli.add_typer(db_cli, name="db", help="Subcommands for managing the database schema.")
cli.add_typer(script_cli, name="script", help="Subcommands running helper scripts.") cli.add_typer(script_cli, name="script", help="Subcommands running helper scripts.")
cli.add_typer( cli.add_typer(
@ -606,6 +735,11 @@ cli.add_typer(
name="deployments", name="deployments",
help="Subcommands for managing the Deployments.", help="Subcommands for managing the Deployments.",
) )
cli.add_typer(
hosting_cli,
name="apps",
help="Subcommands for managing the Deployments.",
)
cli.add_typer( cli.add_typer(
custom_components_cli, custom_components_cli,
name="component", name="component",

View File

@ -44,9 +44,7 @@ from typing_extensions import Self
from reflex import event from reflex import event
from reflex.config import EnvironmentVariables, get_config from reflex.config import EnvironmentVariables, get_config
from reflex.istate.data import RouterData from reflex.istate.data import RouterData
from reflex.istate.storage import ( from reflex.istate.storage import ClientStorageBase
ClientStorageBase,
)
from reflex.vars.base import ( from reflex.vars.base import (
ComputedVar, ComputedVar,
DynamicRouteVar, DynamicRouteVar,

View File

@ -76,6 +76,7 @@ DEFAULT_IMPORTS = {
"EventSpec", "EventSpec",
"EventType", "EventType",
"BASE_STATE", "BASE_STATE",
"KeyInputInfo",
], ],
"reflex.style": ["Style"], "reflex.style": ["Style"],
"reflex.vars.base": ["Var"], "reflex.vars.base": ["Var"],
@ -509,11 +510,18 @@ def _generate_component_create_functiondef(
# Convert each argument type to its AST representation # Convert each argument type to its AST representation
type_args = [type_to_ast(arg, cls=clz) for arg in arguments_without_var] type_args = [type_to_ast(arg, cls=clz) for arg in arguments_without_var]
# Join the type arguments with commas for EventType # Get all prefixes of the type arguments
args_str = ", ".join(ast.unparse(arg) for arg in type_args) all_count_args_type = [
ast.Name(
f"EventType[[{', '.join([ast.unparse(arg) for arg in type_args[:i]])}], BASE_STATE]"
)
for i in range(len(type_args) + 1)
]
# Create EventType using the joined string # Create EventType using the joined string
return ast.Name(id=f"EventType[[{args_str}], BASE_STATE]") return ast.Name(
id=f"Union[{', '.join(map(ast.unparse, all_count_args_type))}]"
)
if isinstance(annotation, str) and annotation.startswith("Tuple["): if isinstance(annotation, str) and annotation.startswith("Tuple["):
inside_of_tuple = annotation.removeprefix("Tuple[").removesuffix("]") inside_of_tuple = annotation.removeprefix("Tuple[").removesuffix("]")
@ -545,8 +553,15 @@ def _generate_component_create_functiondef(
for argument in arguments for argument in arguments
] ]
all_count_args_type = [
ast.Name(
f"EventType[[{', '.join(arguments_without_var[:i])}], BASE_STATE]"
)
for i in range(len(arguments) + 1)
]
return ast.Name( return ast.Name(
id=f"EventType[[{', '.join(arguments_without_var)}], BASE_STATE]" id=f"Union[{', '.join(map(ast.unparse, all_count_args_type))}]"
) )
return ast.Name(id="EventType[..., BASE_STATE]") return ast.Name(id="EventType[..., BASE_STATE]")

View File

@ -26,9 +26,7 @@ from typing import (
get_args, get_args,
get_type_hints, get_type_hints,
) )
from typing import ( from typing import get_origin as get_origin_og
get_origin as get_origin_og,
)
import sqlalchemy import sqlalchemy
@ -42,12 +40,7 @@ except ModuleNotFoundError:
from sqlalchemy.ext.associationproxy import AssociationProxyInstance from sqlalchemy.ext.associationproxy import AssociationProxyInstance
from sqlalchemy.ext.hybrid import hybrid_property from sqlalchemy.ext.hybrid import hybrid_property
from sqlalchemy.orm import ( from sqlalchemy.orm import DeclarativeBase, Mapped, QueryableAttribute, Relationship
DeclarativeBase,
Mapped,
QueryableAttribute,
Relationship,
)
from reflex import constants from reflex import constants
from reflex.base import Base from reflex.base import Base

View File

@ -38,13 +38,7 @@ from typing import (
overload, overload,
) )
from typing_extensions import ( from typing_extensions import ParamSpec, TypeGuard, deprecated, get_type_hints, override
ParamSpec,
TypeGuard,
deprecated,
get_type_hints,
override,
)
from reflex import constants from reflex import constants
from reflex.base import Base from reflex.base import Base
@ -75,10 +69,7 @@ from reflex.utils.types import (
if TYPE_CHECKING: if TYPE_CHECKING:
from reflex.state import BaseState from reflex.state import BaseState
from .number import ( from .number import BooleanVar, NumberVar
BooleanVar,
NumberVar,
)
from .object import ObjectVar from .object import ObjectVar
from .sequence import ArrayVar, StringVar from .sequence import ArrayVar, StringVar

View File

@ -8,13 +8,7 @@ from typing import Any, Callable, Optional, Tuple, Type, Union
from reflex.utils.types import GenericType from reflex.utils.types import GenericType
from .base import ( from .base import CachedVarOperation, LiteralVar, Var, VarData, cached_property_no_lock
CachedVarOperation,
LiteralVar,
Var,
VarData,
cached_property_no_lock,
)
class FunctionVar(Var[Callable], python_types=Callable): class FunctionVar(Var[Callable], python_types=Callable):

View File

@ -27,9 +27,7 @@ from reflex.event import (
from reflex.state import BaseState from reflex.state import BaseState
from reflex.style import Style from reflex.style import Style
from reflex.utils import imports from reflex.utils import imports
from reflex.utils.exceptions import ( from reflex.utils.exceptions import EventFnArgMismatch
EventFnArgMismatch,
)
from reflex.utils.imports import ImportDict, ImportVar, ParsedImportDict, parse_imports from reflex.utils.imports import ImportDict, ImportVar, ParsedImportDict, parse_imports
from reflex.vars import VarData from reflex.vars import VarData
from reflex.vars.base import LiteralVar, Var from reflex.vars.base import LiteralVar, Var

View File

@ -23,11 +23,7 @@ from reflex.vars.base import (
var_operation_return, var_operation_return,
) )
from reflex.vars.function import ArgsFunctionOperation, FunctionStringVar from reflex.vars.function import ArgsFunctionOperation, FunctionStringVar
from reflex.vars.number import ( from reflex.vars.number import LiteralBooleanVar, LiteralNumberVar, NumberVar
LiteralBooleanVar,
LiteralNumberVar,
NumberVar,
)
from reflex.vars.object import LiteralObjectVar, ObjectVar from reflex.vars.object import LiteralObjectVar, ObjectVar
from reflex.vars.sequence import ( from reflex.vars.sequence import (
ArrayVar, ArrayVar,

View File

@ -13,11 +13,7 @@ from reflex.base import Base
from reflex.config import environment from reflex.config import environment
from reflex.event import EventHandler from reflex.event import EventHandler
from reflex.state import BaseState from reflex.state import BaseState
from reflex.utils import ( from reflex.utils import build, prerequisites, types
build,
prerequisites,
types,
)
from reflex.utils import exec as utils_exec from reflex.utils import exec as utils_exec
from reflex.utils.exceptions import ReflexError, SystemPackageMissingError from reflex.utils.exceptions import ReflexError, SystemPackageMissingError
from reflex.vars.base import Var from reflex.vars.base import Var