From b9d73edd6605797642fd67171d574fdfae98b30b Mon Sep 17 00:00:00 2001 From: Khaleel Al-Adhami Date: Wed, 6 Nov 2024 15:10:02 -0800 Subject: [PATCH] add metainfo to keyevent (#4287) * allow for event handlers to ignore args * use a constant * dang it darglint * forgor * keep the tests but move them to valid place * add metainfo to keyevent * format code * fix pyi files * generate all prefixes of event types * change format rule --- pyproject.toml | 1 + reflex/app.py | 9 +-- reflex/components/base/error_boundary.pyi | 8 +- reflex/components/core/clipboard.pyi | 12 +-- reflex/components/core/upload.pyi | 25 +++---- reflex/components/datadisplay/dataeditor.pyi | 74 +++++++++++++++---- reflex/components/el/elements/forms.pyi | 70 ++++++++++++++---- reflex/components/moment/moment.pyi | 4 +- .../components/radix/primitives/accordion.pyi | 4 +- reflex/components/radix/primitives/drawer.pyi | 16 +++- reflex/components/radix/primitives/form.pyi | 24 ++++-- reflex/components/radix/primitives/slider.pyi | 8 +- reflex/components/radix/themes/color_mode.pyi | 9 +-- .../radix/themes/components/alert_dialog.pyi | 4 +- .../radix/themes/components/avatar.py | 6 +- .../radix/themes/components/badge.py | 6 +- .../radix/themes/components/button.pyi | 5 +- .../radix/themes/components/callout.py | 5 +- .../radix/themes/components/card.py | 4 +- .../radix/themes/components/checkbox.py | 6 +- .../radix/themes/components/checkbox.pyi | 12 ++- .../radix/themes/components/context_menu.py | 5 +- .../radix/themes/components/context_menu.pyi | 8 +- .../radix/themes/components/dialog.py | 5 +- .../radix/themes/components/dialog.pyi | 8 +- .../radix/themes/components/dropdown_menu.py | 6 +- .../radix/themes/components/dropdown_menu.pyi | 8 +- .../radix/themes/components/hover_card.py | 5 +- .../radix/themes/components/hover_card.pyi | 8 +- .../radix/themes/components/icon_button.pyi | 5 +- .../radix/themes/components/inset.py | 4 +- .../radix/themes/components/popover.py | 5 +- .../radix/themes/components/popover.pyi | 4 +- .../radix/themes/components/radio_cards.pyi | 4 +- .../radix/themes/components/radio_group.py | 6 +- .../radix/themes/components/radio_group.pyi | 4 +- .../radix/themes/components/scroll_area.py | 4 +- .../themes/components/segmented_control.pyi | 4 +- .../radix/themes/components/select.py | 6 +- .../radix/themes/components/select.pyi | 24 ++++-- .../radix/themes/components/separator.py | 5 +- .../radix/themes/components/slider.py | 5 +- .../radix/themes/components/slider.pyi | 18 +++-- .../radix/themes/components/spinner.py | 5 +- .../radix/themes/components/switch.py | 5 +- .../radix/themes/components/switch.pyi | 4 +- .../radix/themes/components/table.py | 4 +- .../radix/themes/components/tabs.py | 5 +- .../radix/themes/components/tabs.pyi | 8 +- .../radix/themes/components/text_area.py | 6 +- .../radix/themes/components/text_area.pyi | 30 ++++++-- .../radix/themes/components/text_field.py | 6 +- .../radix/themes/components/text_field.pyi | 58 ++++++++++++--- .../radix/themes/components/tooltip.py | 4 +- .../radix/themes/components/tooltip.pyi | 9 +-- reflex/components/radix/themes/layout/base.py | 6 +- reflex/components/radix/themes/layout/flex.py | 7 +- reflex/components/radix/themes/layout/grid.py | 7 +- .../radix/themes/typography/blockquote.py | 10 +-- .../radix/themes/typography/code.py | 11 +-- .../radix/themes/typography/heading.py | 12 +-- .../radix/themes/typography/link.py | 11 +-- .../radix/themes/typography/text.py | 12 +-- reflex/components/react_player/audio.pyi | 15 +++- .../components/react_player/react_player.pyi | 12 ++- reflex/components/react_player/video.pyi | 15 +++- reflex/components/recharts/cartesian.pyi | 4 +- reflex/components/recharts/charts.pyi | 4 +- reflex/components/recharts/general.pyi | 4 +- reflex/components/recharts/polar.pyi | 4 +- reflex/components/suneditor/editor.pyi | 28 +++++-- reflex/components/tags/iter_tag.py | 11 +-- reflex/constants/__init__.py | 11 +-- reflex/event.py | 38 +++++++--- reflex/experimental/client_state.py | 5 +- reflex/experimental/layout.pyi | 8 +- reflex/istate/wrappers.py | 6 +- reflex/state.py | 4 +- reflex/utils/pyi_generator.py | 23 +++++- reflex/utils/types.py | 11 +-- reflex/vars/base.py | 13 +--- reflex/vars/function.py | 8 +- tests/units/components/test_component.py | 4 +- tests/units/test_var.py | 6 +- tests/units/utils/test_utils.py | 6 +- 85 files changed, 514 insertions(+), 409 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 585d4703f..828c3d989 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -91,6 +91,7 @@ build-backend = "poetry.core.masonry.api" [tool.ruff] target-version = "py39" +lint.isort.split-on-trailing-comma = false lint.select = ["B", "D", "E", "F", "I", "SIM", "W"] lint.ignore = ["B008", "D205", "E501", "F403", "SIM115"] lint.pydocstyle.convention = "google" diff --git a/reflex/app.py b/reflex/app.py index 83ee3b840..a8a6e69c6 100644 --- a/reflex/app.py +++ b/reflex/app.py @@ -48,10 +48,7 @@ from reflex.admin import AdminDash from reflex.app_mixins import AppMixin, LifespanMixin, MiddlewareMixin from reflex.compiler import compiler from reflex.compiler import utils as compiler_utils -from reflex.compiler.compiler import ( - ExecutorSafeFunctions, - compile_theme, -) +from reflex.compiler.compiler import ExecutorSafeFunctions, compile_theme from reflex.components.base.app_wrap import AppWrap from reflex.components.base.error_boundary import ErrorBoundary from reflex.components.base.fragment import Fragment @@ -79,9 +76,7 @@ from reflex.event import ( window_alert, ) from reflex.model import Model, get_db_status -from reflex.page import ( - DECORATED_PAGES, -) +from reflex.page import DECORATED_PAGES from reflex.route import ( get_route_args, replace_brackets_with_keywords, diff --git a/reflex/components/base/error_boundary.pyi b/reflex/components/base/error_boundary.pyi index 97acad1bb..92221c97d 100644 --- a/reflex/components/base/error_boundary.pyi +++ b/reflex/components/base/error_boundary.pyi @@ -32,7 +32,13 @@ class ErrorBoundary(Component): on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: 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_mount: Optional[EventType[[], BASE_STATE]] = None, on_mouse_down: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/core/clipboard.pyi b/reflex/components/core/clipboard.pyi index e3233d86c..fc49cf64b 100644 --- a/reflex/components/core/clipboard.pyi +++ b/reflex/components/core/clipboard.pyi @@ -6,10 +6,7 @@ from typing import Any, Dict, List, Optional, Union, overload from reflex.components.base.fragment import Fragment -from reflex.event import ( - BASE_STATE, - EventType, -) +from reflex.event import BASE_STATE, EventType from reflex.style import Style from reflex.utils.imports import ImportVar from reflex.vars.base import Var @@ -43,7 +40,12 @@ class Clipboard(Fragment): on_mouse_out: Optional[EventType[[], BASE_STATE]] = None, on_mouse_over: Optional[EventType[[], BASE_STATE]] = None, on_mouse_up: Optional[EventType[[], BASE_STATE]] = None, - on_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_unmount: Optional[EventType[[], BASE_STATE]] = None, **props, diff --git a/reflex/components/core/upload.pyi b/reflex/components/core/upload.pyi index c6cb329cb..3c7b5b160 100644 --- a/reflex/components/core/upload.pyi +++ b/reflex/components/core/upload.pyi @@ -6,18 +6,9 @@ from pathlib import Path from typing import Any, ClassVar, Dict, List, Optional, Union, overload -from reflex.components.component import ( - Component, - ComponentNamespace, - MemoizationLeaf, -) +from reflex.components.component import Component, ComponentNamespace, MemoizationLeaf from reflex.constants import Dirs -from reflex.event import ( - BASE_STATE, - CallableEventSpec, - EventSpec, - EventType, -) +from reflex.event import BASE_STATE, CallableEventSpec, EventSpec, EventType from reflex.style import Style from reflex.utils.imports import ImportVar from reflex.vars import VarData @@ -120,7 +111,9 @@ class Upload(MemoizationLeaf): on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: 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_mount: 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_context_menu: 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_mount: 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_context_menu: 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_mount: Optional[EventType[[], BASE_STATE]] = None, on_mouse_down: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/datadisplay/dataeditor.pyi b/reflex/components/datadisplay/dataeditor.pyi index 43785e5e8..dbf79ef7b 100644 --- a/reflex/components/datadisplay/dataeditor.pyi +++ b/reflex/components/datadisplay/dataeditor.pyi @@ -184,34 +184,80 @@ class DataEditor(NoSSRComponent): autofocus: Optional[bool] = None, custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, - on_cell_activated: Optional[EventType[[tuple[int, int]], BASE_STATE]] = None, - on_cell_clicked: Optional[EventType[[tuple[int, int]], BASE_STATE]] = None, - on_cell_context_menu: Optional[EventType[[tuple[int, int]], BASE_STATE]] = None, + on_cell_activated: Optional[ + Union[EventType[[], BASE_STATE], EventType[[tuple[int, int]], BASE_STATE]] + ] = 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[ - 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, 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_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_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, on_focus: Optional[EventType[[], BASE_STATE]] = None, 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, 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, - 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[ - 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, - 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_mouse_down: Optional[EventType[[], BASE_STATE]] = None, on_mouse_enter: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/el/elements/forms.pyi b/reflex/components/el/elements/forms.pyi index 2f9924247..fca2ffaa1 100644 --- a/reflex/components/el/elements/forms.pyi +++ b/reflex/components/el/elements/forms.pyi @@ -8,7 +8,7 @@ from typing import Any, Dict, Optional, Tuple, Union, overload from jinja2 import Environment 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.utils.imports import ImportDict from reflex.vars.base import Var @@ -340,8 +340,12 @@ class Form(BaseHTML): on_scroll: Optional[EventType[[], BASE_STATE]] = None, on_submit: Optional[ Union[ - EventType[[Dict[str, Any]], BASE_STATE], - EventType[[Dict[str, str]], BASE_STATE], + Union[ + EventType[[], BASE_STATE], EventType[[Dict[str, Any]], BASE_STATE] + ], + Union[ + EventType[[], BASE_STATE], EventType[[Dict[str, str]], BASE_STATE] + ], ] ] = None, on_unmount: Optional[EventType[[], BASE_STATE]] = None, @@ -470,14 +474,32 @@ class Input(BaseHTML): class_name: Optional[Any] = None, autofocus: Optional[bool] = None, custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, - on_blur: Optional[EventType[[str], BASE_STATE]] = None, - on_change: Optional[EventType[[str], BASE_STATE]] = None, + on_blur: Optional[ + Union[EventType[[], BASE_STATE], EventType[[str], BASE_STATE]] + ] = None, + on_change: Optional[ + Union[EventType[[], BASE_STATE], EventType[[str], BASE_STATE]] + ] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, on_double_click: Optional[EventType[[], BASE_STATE]] = None, - on_focus: Optional[EventType[[str], BASE_STATE]] = None, - on_key_down: Optional[EventType[[str], BASE_STATE]] = None, - on_key_up: Optional[EventType[[str], BASE_STATE]] = None, + on_focus: Optional[ + Union[EventType[[], BASE_STATE], EventType[[str], BASE_STATE]] + ] = None, + on_key_down: Optional[ + Union[ + EventType[[], BASE_STATE], + EventType[[str], BASE_STATE], + EventType[[str, KeyInputInfo], BASE_STATE], + ] + ] = None, + on_key_up: Optional[ + Union[ + EventType[[], BASE_STATE], + EventType[[str], BASE_STATE], + EventType[[str, KeyInputInfo], BASE_STATE], + ] + ] = None, on_mount: Optional[EventType[[], BASE_STATE]] = None, on_mouse_down: Optional[EventType[[], BASE_STATE]] = None, on_mouse_enter: Optional[EventType[[], BASE_STATE]] = None, @@ -1252,7 +1274,9 @@ class Select(BaseHTML): autofocus: Optional[bool] = None, custom_attrs: Optional[Dict[str, Union[Var, str]]] = 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_context_menu: 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, autofocus: Optional[bool] = None, custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, - on_blur: Optional[EventType[[str], BASE_STATE]] = None, - on_change: Optional[EventType[[str], BASE_STATE]] = None, + on_blur: Optional[ + Union[EventType[[], BASE_STATE], EventType[[str], BASE_STATE]] + ] = None, + on_change: Optional[ + Union[EventType[[], BASE_STATE], EventType[[str], BASE_STATE]] + ] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, on_double_click: Optional[EventType[[], BASE_STATE]] = None, - on_focus: Optional[EventType[[str], BASE_STATE]] = None, - on_key_down: Optional[EventType[[str], BASE_STATE]] = None, - on_key_up: Optional[EventType[[str], BASE_STATE]] = None, + on_focus: Optional[ + Union[EventType[[], BASE_STATE], EventType[[str], BASE_STATE]] + ] = None, + on_key_down: Optional[ + Union[ + EventType[[], BASE_STATE], + EventType[[str], BASE_STATE], + EventType[[str, KeyInputInfo], BASE_STATE], + ] + ] = None, + on_key_up: Optional[ + Union[ + EventType[[], BASE_STATE], + EventType[[str], BASE_STATE], + EventType[[str, KeyInputInfo], BASE_STATE], + ] + ] = None, on_mount: Optional[EventType[[], BASE_STATE]] = None, on_mouse_down: Optional[EventType[[], BASE_STATE]] = None, on_mouse_enter: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/moment/moment.pyi b/reflex/components/moment/moment.pyi index 58738d833..641435bde 100644 --- a/reflex/components/moment/moment.pyi +++ b/reflex/components/moment/moment.pyi @@ -59,7 +59,9 @@ class Moment(NoSSRComponent): autofocus: Optional[bool] = None, custom_attrs: Optional[Dict[str, Union[Var, str]]] = 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_context_menu: Optional[EventType[[], BASE_STATE]] = None, on_double_click: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/primitives/accordion.pyi b/reflex/components/radix/primitives/accordion.pyi index 39dd84de7..4f4a9243f 100644 --- a/reflex/components/radix/primitives/accordion.pyi +++ b/reflex/components/radix/primitives/accordion.pyi @@ -262,7 +262,9 @@ class AccordionRoot(AccordionComponent): on_mouse_up: Optional[EventType[[], BASE_STATE]] = None, on_scroll: 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, ) -> "AccordionRoot": """Create the component. diff --git a/reflex/components/radix/primitives/drawer.pyi b/reflex/components/radix/primitives/drawer.pyi index d29ae2ba4..650967e3f 100644 --- a/reflex/components/radix/primitives/drawer.pyi +++ b/reflex/components/radix/primitives/drawer.pyi @@ -91,7 +91,9 @@ class DrawerRoot(DrawerComponent): class_name: Optional[Any] = None, autofocus: Optional[bool] = 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_click: 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_over: 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_unmount: Optional[EventType[[], BASE_STATE]] = None, **props, @@ -573,7 +577,9 @@ class Drawer(ComponentNamespace): class_name: Optional[Any] = None, autofocus: Optional[bool] = 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_click: 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_over: 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_unmount: Optional[EventType[[], BASE_STATE]] = None, **props, diff --git a/reflex/components/radix/primitives/form.pyi b/reflex/components/radix/primitives/form.pyi index b336116ca..bfeb60ac9 100644 --- a/reflex/components/radix/primitives/form.pyi +++ b/reflex/components/radix/primitives/form.pyi @@ -131,8 +131,12 @@ class FormRoot(FormComponent, HTMLForm): on_scroll: Optional[EventType[[], BASE_STATE]] = None, on_submit: Optional[ Union[ - EventType[[Dict[str, Any]], BASE_STATE], - EventType[[Dict[str, str]], BASE_STATE], + Union[ + EventType[[], BASE_STATE], EventType[[Dict[str, Any]], BASE_STATE] + ], + Union[ + EventType[[], BASE_STATE], EventType[[Dict[str, str]], 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_submit: Optional[ Union[ - EventType[[Dict[str, Any]], BASE_STATE], - EventType[[Dict[str, str]], BASE_STATE], + Union[ + EventType[[], BASE_STATE], EventType[[Dict[str, Any]], BASE_STATE] + ], + Union[ + EventType[[], BASE_STATE], EventType[[Dict[str, str]], 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_submit: Optional[ Union[ - EventType[[Dict[str, Any]], BASE_STATE], - EventType[[Dict[str, str]], BASE_STATE], + Union[ + EventType[[], BASE_STATE], EventType[[Dict[str, Any]], BASE_STATE] + ], + Union[ + EventType[[], BASE_STATE], EventType[[Dict[str, str]], BASE_STATE] + ], ] ] = None, on_unmount: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/primitives/slider.pyi b/reflex/components/radix/primitives/slider.pyi index b37ec7b07..161d76199 100644 --- a/reflex/components/radix/primitives/slider.pyi +++ b/reflex/components/radix/primitives/slider.pyi @@ -109,8 +109,12 @@ class SliderRoot(SliderComponent): on_mouse_up: Optional[EventType[[], BASE_STATE]] = None, on_scroll: Optional[EventType[[], BASE_STATE]] = None, on_unmount: Optional[EventType[[], BASE_STATE]] = None, - on_value_change: Optional[EventType[[List[int]], BASE_STATE]] = None, - on_value_commit: Optional[EventType[[List[int]], BASE_STATE]] = None, + on_value_change: Optional[ + 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, ) -> "SliderRoot": """Create the component. diff --git a/reflex/components/radix/themes/color_mode.pyi b/reflex/components/radix/themes/color_mode.pyi index a508730b7..43a9dd31a 100644 --- a/reflex/components/radix/themes/color_mode.pyi +++ b/reflex/components/radix/themes/color_mode.pyi @@ -11,10 +11,7 @@ from reflex.components.core.cond import Cond from reflex.components.lucide.icon import Icon from reflex.components.radix.themes.components.switch import Switch from reflex.event import BASE_STATE, EventType -from reflex.style import ( - Style, - color_mode, -) +from reflex.style import Style, color_mode from reflex.vars.base import Var from .components.icon_button import IconButton @@ -395,7 +392,9 @@ class ColorModeSwitch(Switch): autofocus: Optional[bool] = None, custom_attrs: Optional[Dict[str, Union[Var, str]]] = 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_context_menu: Optional[EventType[[], BASE_STATE]] = None, on_double_click: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/themes/components/alert_dialog.pyi b/reflex/components/radix/themes/components/alert_dialog.pyi index d219e2abf..3cd806b1c 100644 --- a/reflex/components/radix/themes/components/alert_dialog.pyi +++ b/reflex/components/radix/themes/components/alert_dialog.pyi @@ -43,7 +43,9 @@ class AlertDialogRoot(RadixThemesComponent): on_mouse_out: Optional[EventType[[], BASE_STATE]] = None, on_mouse_over: Optional[EventType[[], BASE_STATE]] = None, on_mouse_up: Optional[EventType[[], BASE_STATE]] = None, - on_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_unmount: Optional[EventType[[], BASE_STATE]] = None, **props, diff --git a/reflex/components/radix/themes/components/avatar.py b/reflex/components/radix/themes/components/avatar.py index 4f3956e76..77a305e29 100644 --- a/reflex/components/radix/themes/components/avatar.py +++ b/reflex/components/radix/themes/components/avatar.py @@ -5,11 +5,7 @@ from typing import Literal from reflex.components.core.breakpoints import Responsive from reflex.vars.base import Var -from ..base import ( - LiteralAccentColor, - LiteralRadius, - RadixThemesComponent, -) +from ..base import LiteralAccentColor, LiteralRadius, RadixThemesComponent LiteralSize = Literal["1", "2", "3", "4", "5", "6", "7", "8", "9"] diff --git a/reflex/components/radix/themes/components/badge.py b/reflex/components/radix/themes/components/badge.py index 9391e53c3..389012bf0 100644 --- a/reflex/components/radix/themes/components/badge.py +++ b/reflex/components/radix/themes/components/badge.py @@ -6,11 +6,7 @@ from reflex.components.core.breakpoints import Responsive from reflex.components.el import elements from reflex.vars.base import Var -from ..base import ( - LiteralAccentColor, - LiteralRadius, - RadixThemesComponent, -) +from ..base import LiteralAccentColor, LiteralRadius, RadixThemesComponent class Badge(elements.Span, RadixThemesComponent): diff --git a/reflex/components/radix/themes/components/button.pyi b/reflex/components/radix/themes/components/button.pyi index b72233922..f01c94fc2 100644 --- a/reflex/components/radix/themes/components/button.pyi +++ b/reflex/components/radix/themes/components/button.pyi @@ -11,10 +11,7 @@ from reflex.event import BASE_STATE, EventType from reflex.style import Style from reflex.vars.base import Var -from ..base import ( - RadixLoadingProp, - RadixThemesComponent, -) +from ..base import RadixLoadingProp, RadixThemesComponent LiteralButtonSize = Literal["1", "2", "3", "4"] diff --git a/reflex/components/radix/themes/components/callout.py b/reflex/components/radix/themes/components/callout.py index 926e0ad54..6b0a1d399 100644 --- a/reflex/components/radix/themes/components/callout.py +++ b/reflex/components/radix/themes/components/callout.py @@ -9,10 +9,7 @@ from reflex.components.el import elements from reflex.components.lucide.icon import Icon from reflex.vars.base import Var -from ..base import ( - LiteralAccentColor, - RadixThemesComponent, -) +from ..base import LiteralAccentColor, RadixThemesComponent CalloutVariant = Literal["soft", "surface", "outline"] diff --git a/reflex/components/radix/themes/components/card.py b/reflex/components/radix/themes/components/card.py index 4983cdd41..30823de56 100644 --- a/reflex/components/radix/themes/components/card.py +++ b/reflex/components/radix/themes/components/card.py @@ -6,9 +6,7 @@ from reflex.components.core.breakpoints import Responsive from reflex.components.el import elements from reflex.vars.base import Var -from ..base import ( - RadixThemesComponent, -) +from ..base import RadixThemesComponent class Card(elements.Div, RadixThemesComponent): diff --git a/reflex/components/radix/themes/components/checkbox.py b/reflex/components/radix/themes/components/checkbox.py index 1460382f5..42277bfea 100644 --- a/reflex/components/radix/themes/components/checkbox.py +++ b/reflex/components/radix/themes/components/checkbox.py @@ -9,11 +9,7 @@ from reflex.components.radix.themes.typography.text import Text from reflex.event import EventHandler, passthrough_event_spec from reflex.vars.base import LiteralVar, Var -from ..base import ( - LiteralAccentColor, - LiteralSpacing, - RadixThemesComponent, -) +from ..base import LiteralAccentColor, LiteralSpacing, RadixThemesComponent LiteralCheckboxSize = Literal["1", "2", "3"] LiteralCheckboxVariant = Literal["classic", "surface", "soft"] diff --git a/reflex/components/radix/themes/components/checkbox.pyi b/reflex/components/radix/themes/components/checkbox.pyi index 43d707c8f..f7a1e85d2 100644 --- a/reflex/components/radix/themes/components/checkbox.pyi +++ b/reflex/components/radix/themes/components/checkbox.pyi @@ -116,7 +116,9 @@ class Checkbox(RadixThemesComponent): autofocus: Optional[bool] = None, custom_attrs: Optional[Dict[str, Union[Var, str]]] = 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_context_menu: Optional[EventType[[], BASE_STATE]] = None, on_double_click: Optional[EventType[[], BASE_STATE]] = None, @@ -264,7 +266,9 @@ class HighLevelCheckbox(RadixThemesComponent): autofocus: Optional[bool] = None, custom_attrs: Optional[Dict[str, Union[Var, str]]] = 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_context_menu: Optional[EventType[[], BASE_STATE]] = None, on_double_click: Optional[EventType[[], BASE_STATE]] = None, @@ -409,7 +413,9 @@ class CheckboxNamespace(ComponentNamespace): autofocus: Optional[bool] = None, custom_attrs: Optional[Dict[str, Union[Var, str]]] = 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_context_menu: Optional[EventType[[], BASE_STATE]] = None, on_double_click: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/themes/components/context_menu.py b/reflex/components/radix/themes/components/context_menu.py index 7b2032a42..ea4902233 100644 --- a/reflex/components/radix/themes/components/context_menu.py +++ b/reflex/components/radix/themes/components/context_menu.py @@ -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.vars.base import Var -from ..base import ( - LiteralAccentColor, - RadixThemesComponent, -) +from ..base import LiteralAccentColor, RadixThemesComponent LiteralDirType = Literal["ltr", "rtl"] diff --git a/reflex/components/radix/themes/components/context_menu.pyi b/reflex/components/radix/themes/components/context_menu.pyi index ffc058d14..97d0448a3 100644 --- a/reflex/components/radix/themes/components/context_menu.pyi +++ b/reflex/components/radix/themes/components/context_menu.pyi @@ -47,7 +47,9 @@ class ContextMenuRoot(RadixThemesComponent): on_mouse_out: Optional[EventType[[], BASE_STATE]] = None, on_mouse_over: Optional[EventType[[], BASE_STATE]] = None, on_mouse_up: Optional[EventType[[], BASE_STATE]] = None, - on_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_unmount: Optional[EventType[[], BASE_STATE]] = None, **props, @@ -330,7 +332,9 @@ class ContextMenuSub(RadixThemesComponent): on_mouse_out: Optional[EventType[[], BASE_STATE]] = None, on_mouse_over: Optional[EventType[[], BASE_STATE]] = None, on_mouse_up: Optional[EventType[[], BASE_STATE]] = None, - on_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_unmount: Optional[EventType[[], BASE_STATE]] = None, **props, diff --git a/reflex/components/radix/themes/components/dialog.py b/reflex/components/radix/themes/components/dialog.py index 5d33cbc5f..1b7c3b532 100644 --- a/reflex/components/radix/themes/components/dialog.py +++ b/reflex/components/radix/themes/components/dialog.py @@ -8,10 +8,7 @@ from reflex.components.el import elements from reflex.event import EventHandler, no_args_event_spec, passthrough_event_spec from reflex.vars.base import Var -from ..base import ( - RadixThemesComponent, - RadixThemesTriggerComponent, -) +from ..base import RadixThemesComponent, RadixThemesTriggerComponent class DialogRoot(RadixThemesComponent): diff --git a/reflex/components/radix/themes/components/dialog.pyi b/reflex/components/radix/themes/components/dialog.pyi index 8f465efdf..77302bc82 100644 --- a/reflex/components/radix/themes/components/dialog.pyi +++ b/reflex/components/radix/themes/components/dialog.pyi @@ -41,7 +41,9 @@ class DialogRoot(RadixThemesComponent): on_mouse_out: Optional[EventType[[], BASE_STATE]] = None, on_mouse_over: Optional[EventType[[], BASE_STATE]] = None, on_mouse_up: Optional[EventType[[], BASE_STATE]] = None, - on_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_unmount: Optional[EventType[[], BASE_STATE]] = None, **props, @@ -391,7 +393,9 @@ class Dialog(ComponentNamespace): on_mouse_out: Optional[EventType[[], BASE_STATE]] = None, on_mouse_over: Optional[EventType[[], BASE_STATE]] = None, on_mouse_up: Optional[EventType[[], BASE_STATE]] = None, - on_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_unmount: Optional[EventType[[], BASE_STATE]] = None, **props, diff --git a/reflex/components/radix/themes/components/dropdown_menu.py b/reflex/components/radix/themes/components/dropdown_menu.py index 0d2ac38e2..abce3e3bb 100644 --- a/reflex/components/radix/themes/components/dropdown_menu.py +++ b/reflex/components/radix/themes/components/dropdown_menu.py @@ -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.vars.base import Var -from ..base import ( - LiteralAccentColor, - RadixThemesComponent, - RadixThemesTriggerComponent, -) +from ..base import LiteralAccentColor, RadixThemesComponent, RadixThemesTriggerComponent LiteralDirType = Literal["ltr", "rtl"] diff --git a/reflex/components/radix/themes/components/dropdown_menu.pyi b/reflex/components/radix/themes/components/dropdown_menu.pyi index 0cc83640f..1a2ce66b8 100644 --- a/reflex/components/radix/themes/components/dropdown_menu.pyi +++ b/reflex/components/radix/themes/components/dropdown_menu.pyi @@ -49,7 +49,9 @@ class DropdownMenuRoot(RadixThemesComponent): on_mouse_out: Optional[EventType[[], BASE_STATE]] = None, on_mouse_over: Optional[EventType[[], BASE_STATE]] = None, on_mouse_up: Optional[EventType[[], BASE_STATE]] = None, - on_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_unmount: Optional[EventType[[], BASE_STATE]] = None, **props, @@ -367,7 +369,9 @@ class DropdownMenuSub(RadixThemesComponent): on_mouse_out: Optional[EventType[[], BASE_STATE]] = None, on_mouse_over: Optional[EventType[[], BASE_STATE]] = None, on_mouse_up: Optional[EventType[[], BASE_STATE]] = None, - on_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_unmount: Optional[EventType[[], BASE_STATE]] = None, **props, diff --git a/reflex/components/radix/themes/components/hover_card.py b/reflex/components/radix/themes/components/hover_card.py index 6babb10d2..bd5489ce6 100644 --- a/reflex/components/radix/themes/components/hover_card.py +++ b/reflex/components/radix/themes/components/hover_card.py @@ -8,10 +8,7 @@ from reflex.components.el import elements from reflex.event import EventHandler, passthrough_event_spec from reflex.vars.base import Var -from ..base import ( - RadixThemesComponent, - RadixThemesTriggerComponent, -) +from ..base import RadixThemesComponent, RadixThemesTriggerComponent class HoverCardRoot(RadixThemesComponent): diff --git a/reflex/components/radix/themes/components/hover_card.pyi b/reflex/components/radix/themes/components/hover_card.pyi index 730bd48a3..7044bc3ca 100644 --- a/reflex/components/radix/themes/components/hover_card.pyi +++ b/reflex/components/radix/themes/components/hover_card.pyi @@ -43,7 +43,9 @@ class HoverCardRoot(RadixThemesComponent): on_mouse_out: Optional[EventType[[], BASE_STATE]] = None, on_mouse_over: Optional[EventType[[], BASE_STATE]] = None, on_mouse_up: Optional[EventType[[], BASE_STATE]] = None, - on_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_unmount: Optional[EventType[[], BASE_STATE]] = None, **props, @@ -286,7 +288,9 @@ class HoverCard(ComponentNamespace): on_mouse_out: Optional[EventType[[], BASE_STATE]] = None, on_mouse_over: Optional[EventType[[], BASE_STATE]] = None, on_mouse_up: Optional[EventType[[], BASE_STATE]] = None, - on_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_unmount: Optional[EventType[[], BASE_STATE]] = None, **props, diff --git a/reflex/components/radix/themes/components/icon_button.pyi b/reflex/components/radix/themes/components/icon_button.pyi index 75825a033..81090e2e2 100644 --- a/reflex/components/radix/themes/components/icon_button.pyi +++ b/reflex/components/radix/themes/components/icon_button.pyi @@ -11,10 +11,7 @@ from reflex.event import BASE_STATE, EventType from reflex.style import Style from reflex.vars.base import Var -from ..base import ( - RadixLoadingProp, - RadixThemesComponent, -) +from ..base import RadixLoadingProp, RadixThemesComponent LiteralButtonSize = Literal["1", "2", "3", "4"] diff --git a/reflex/components/radix/themes/components/inset.py b/reflex/components/radix/themes/components/inset.py index 347b9f6b0..059858272 100644 --- a/reflex/components/radix/themes/components/inset.py +++ b/reflex/components/radix/themes/components/inset.py @@ -6,9 +6,7 @@ from reflex.components.core.breakpoints import Responsive from reflex.components.el import elements from reflex.vars.base import Var -from ..base import ( - RadixThemesComponent, -) +from ..base import RadixThemesComponent LiteralButtonSize = Literal["1", "2", "3", "4"] diff --git a/reflex/components/radix/themes/components/popover.py b/reflex/components/radix/themes/components/popover.py index bcafe6d38..bdf5f4af3 100644 --- a/reflex/components/radix/themes/components/popover.py +++ b/reflex/components/radix/themes/components/popover.py @@ -8,10 +8,7 @@ from reflex.components.el import elements from reflex.event import EventHandler, no_args_event_spec, passthrough_event_spec from reflex.vars.base import Var -from ..base import ( - RadixThemesComponent, - RadixThemesTriggerComponent, -) +from ..base import RadixThemesComponent, RadixThemesTriggerComponent class PopoverRoot(RadixThemesComponent): diff --git a/reflex/components/radix/themes/components/popover.pyi b/reflex/components/radix/themes/components/popover.pyi index 666995b17..d4be01e94 100644 --- a/reflex/components/radix/themes/components/popover.pyi +++ b/reflex/components/radix/themes/components/popover.pyi @@ -42,7 +42,9 @@ class PopoverRoot(RadixThemesComponent): on_mouse_out: Optional[EventType[[], BASE_STATE]] = None, on_mouse_over: Optional[EventType[[], BASE_STATE]] = None, on_mouse_up: Optional[EventType[[], BASE_STATE]] = None, - on_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_unmount: Optional[EventType[[], BASE_STATE]] = None, **props, diff --git a/reflex/components/radix/themes/components/radio_cards.pyi b/reflex/components/radix/themes/components/radio_cards.pyi index 505453e9f..a9fc8075e 100644 --- a/reflex/components/radix/themes/components/radio_cards.pyi +++ b/reflex/components/radix/themes/components/radio_cards.pyi @@ -177,7 +177,9 @@ class RadioCardsRoot(RadixThemesComponent): on_mouse_up: Optional[EventType[[], BASE_STATE]] = None, on_scroll: 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, ) -> "RadioCardsRoot": """Create a new component instance. diff --git a/reflex/components/radix/themes/components/radio_group.py b/reflex/components/radix/themes/components/radio_group.py index df3843cf9..dc9c11f5a 100644 --- a/reflex/components/radix/themes/components/radio_group.py +++ b/reflex/components/radix/themes/components/radio_group.py @@ -14,11 +14,7 @@ from reflex.utils import types from reflex.vars.base import LiteralVar, Var from reflex.vars.sequence import StringVar -from ..base import ( - LiteralAccentColor, - LiteralSpacing, - RadixThemesComponent, -) +from ..base import LiteralAccentColor, LiteralSpacing, RadixThemesComponent LiteralFlexDirection = Literal["row", "column", "row-reverse", "column-reverse"] diff --git a/reflex/components/radix/themes/components/radio_group.pyi b/reflex/components/radix/themes/components/radio_group.pyi index 3851ca6f6..72ff5ecdb 100644 --- a/reflex/components/radix/themes/components/radio_group.pyi +++ b/reflex/components/radix/themes/components/radio_group.pyi @@ -113,7 +113,9 @@ class RadioGroupRoot(RadixThemesComponent): autofocus: Optional[bool] = None, custom_attrs: Optional[Dict[str, Union[Var, str]]] = 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_context_menu: Optional[EventType[[], BASE_STATE]] = None, on_double_click: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/themes/components/scroll_area.py b/reflex/components/radix/themes/components/scroll_area.py index bd58118dd..516649e12 100644 --- a/reflex/components/radix/themes/components/scroll_area.py +++ b/reflex/components/radix/themes/components/scroll_area.py @@ -4,9 +4,7 @@ from typing import Literal from reflex.vars.base import Var -from ..base import ( - RadixThemesComponent, -) +from ..base import RadixThemesComponent class ScrollArea(RadixThemesComponent): diff --git a/reflex/components/radix/themes/components/segmented_control.pyi b/reflex/components/radix/themes/components/segmented_control.pyi index 6a28961ba..896be5dd6 100644 --- a/reflex/components/radix/themes/components/segmented_control.pyi +++ b/reflex/components/radix/themes/components/segmented_control.pyi @@ -117,7 +117,9 @@ class SegmentedControlRoot(RadixThemesComponent): autofocus: Optional[bool] = None, custom_attrs: Optional[Dict[str, Union[Var, str]]] = 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_context_menu: Optional[EventType[[], BASE_STATE]] = None, on_double_click: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/themes/components/select.py b/reflex/components/radix/themes/components/select.py index f71276c8b..45e5712bc 100644 --- a/reflex/components/radix/themes/components/select.py +++ b/reflex/components/radix/themes/components/select.py @@ -8,11 +8,7 @@ from reflex.components.core.breakpoints import Responsive from reflex.event import no_args_event_spec, passthrough_event_spec from reflex.vars.base import Var -from ..base import ( - LiteralAccentColor, - LiteralRadius, - RadixThemesComponent, -) +from ..base import LiteralAccentColor, LiteralRadius, RadixThemesComponent class SelectRoot(RadixThemesComponent): diff --git a/reflex/components/radix/themes/components/select.pyi b/reflex/components/radix/themes/components/select.pyi index bcedb00f5..de35cf0a4 100644 --- a/reflex/components/radix/themes/components/select.pyi +++ b/reflex/components/radix/themes/components/select.pyi @@ -44,7 +44,9 @@ class SelectRoot(RadixThemesComponent): autofocus: Optional[bool] = None, custom_attrs: Optional[Dict[str, Union[Var, str]]] = 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_context_menu: 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_over: 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_unmount: Optional[EventType[[], BASE_STATE]] = None, **props, @@ -685,7 +689,9 @@ class HighLevelSelect(SelectRoot): autofocus: Optional[bool] = None, custom_attrs: Optional[Dict[str, Union[Var, str]]] = 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_context_menu: 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_over: 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_unmount: Optional[EventType[[], BASE_STATE]] = None, **props, @@ -861,7 +869,9 @@ class Select(ComponentNamespace): autofocus: Optional[bool] = None, custom_attrs: Optional[Dict[str, Union[Var, str]]] = 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_context_menu: 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_over: 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_unmount: Optional[EventType[[], BASE_STATE]] = None, **props, diff --git a/reflex/components/radix/themes/components/separator.py b/reflex/components/radix/themes/components/separator.py index 1689717d2..9fc06807a 100644 --- a/reflex/components/radix/themes/components/separator.py +++ b/reflex/components/radix/themes/components/separator.py @@ -5,10 +5,7 @@ from typing import Literal from reflex.components.core.breakpoints import Responsive from reflex.vars.base import LiteralVar, Var -from ..base import ( - LiteralAccentColor, - RadixThemesComponent, -) +from ..base import LiteralAccentColor, RadixThemesComponent LiteralSeperatorSize = Literal["1", "2", "3", "4"] diff --git a/reflex/components/radix/themes/components/slider.py b/reflex/components/radix/themes/components/slider.py index d833ef782..6acc21497 100644 --- a/reflex/components/radix/themes/components/slider.py +++ b/reflex/components/radix/themes/components/slider.py @@ -9,10 +9,7 @@ from reflex.components.core.breakpoints import Responsive from reflex.event import EventHandler, passthrough_event_spec from reflex.vars.base import Var -from ..base import ( - LiteralAccentColor, - RadixThemesComponent, -) +from ..base import LiteralAccentColor, RadixThemesComponent on_value_event_spec = ( passthrough_event_spec(list[Union[int, float]]), diff --git a/reflex/components/radix/themes/components/slider.pyi b/reflex/components/radix/themes/components/slider.pyi index 18894d950..d29570536 100644 --- a/reflex/components/radix/themes/components/slider.pyi +++ b/reflex/components/radix/themes/components/slider.pyi @@ -142,9 +142,12 @@ class Slider(RadixThemesComponent): on_blur: Optional[EventType[[], BASE_STATE]] = None, on_change: Optional[ Union[ - EventType[[list[Union[int, float]]], BASE_STATE], - EventType[[list[int]], BASE_STATE], - EventType[[list[float]], BASE_STATE], + Union[ + EventType[[], BASE_STATE], + EventType[[list[Union[int, float]]], BASE_STATE], + ], + Union[EventType[[], BASE_STATE], EventType[[list[int]], BASE_STATE]], + Union[EventType[[], BASE_STATE], EventType[[list[float]], 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_value_commit: Optional[ Union[ - EventType[[list[Union[int, float]]], BASE_STATE], - EventType[[list[int]], BASE_STATE], - EventType[[list[float]], BASE_STATE], + Union[ + EventType[[], BASE_STATE], + EventType[[list[Union[int, float]]], BASE_STATE], + ], + Union[EventType[[], BASE_STATE], EventType[[list[int]], BASE_STATE]], + Union[EventType[[], BASE_STATE], EventType[[list[float]], BASE_STATE]], ] ] = None, **props, diff --git a/reflex/components/radix/themes/components/spinner.py b/reflex/components/radix/themes/components/spinner.py index cc29d6091..620d248c4 100644 --- a/reflex/components/radix/themes/components/spinner.py +++ b/reflex/components/radix/themes/components/spinner.py @@ -5,10 +5,7 @@ from typing import Literal from reflex.components.core.breakpoints import Responsive from reflex.vars.base import Var -from ..base import ( - RadixLoadingProp, - RadixThemesComponent, -) +from ..base import RadixLoadingProp, RadixThemesComponent LiteralSpinnerSize = Literal["1", "2", "3"] diff --git a/reflex/components/radix/themes/components/switch.py b/reflex/components/radix/themes/components/switch.py index dea4913aa..2af4f55bb 100644 --- a/reflex/components/radix/themes/components/switch.py +++ b/reflex/components/radix/themes/components/switch.py @@ -6,10 +6,7 @@ from reflex.components.core.breakpoints import Responsive from reflex.event import EventHandler, passthrough_event_spec from reflex.vars.base import Var -from ..base import ( - LiteralAccentColor, - RadixThemesComponent, -) +from ..base import LiteralAccentColor, RadixThemesComponent LiteralSwitchSize = Literal["1", "2", "3"] diff --git a/reflex/components/radix/themes/components/switch.pyi b/reflex/components/radix/themes/components/switch.pyi index f338cd38f..f0377904b 100644 --- a/reflex/components/radix/themes/components/switch.pyi +++ b/reflex/components/radix/themes/components/switch.pyi @@ -119,7 +119,9 @@ class Switch(RadixThemesComponent): autofocus: Optional[bool] = None, custom_attrs: Optional[Dict[str, Union[Var, str]]] = 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_context_menu: Optional[EventType[[], BASE_STATE]] = None, on_double_click: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/themes/components/table.py b/reflex/components/radix/themes/components/table.py index e1f03d4e2..ce1058db5 100644 --- a/reflex/components/radix/themes/components/table.py +++ b/reflex/components/radix/themes/components/table.py @@ -7,9 +7,7 @@ from reflex.components.core.breakpoints import Responsive from reflex.components.el import elements from reflex.vars.base import Var -from ..base import ( - RadixThemesComponent, -) +from ..base import RadixThemesComponent class TableRoot(elements.Table, RadixThemesComponent): diff --git a/reflex/components/radix/themes/components/tabs.py b/reflex/components/radix/themes/components/tabs.py index ac04c1a3d..adfb32fab 100644 --- a/reflex/components/radix/themes/components/tabs.py +++ b/reflex/components/radix/themes/components/tabs.py @@ -10,10 +10,7 @@ from reflex.components.core.colors import color from reflex.event import EventHandler, passthrough_event_spec from reflex.vars.base import Var -from ..base import ( - LiteralAccentColor, - RadixThemesComponent, -) +from ..base import LiteralAccentColor, RadixThemesComponent vertical_orientation_css = "&[data-orientation='vertical']" diff --git a/reflex/components/radix/themes/components/tabs.pyi b/reflex/components/radix/themes/components/tabs.pyi index ef043e984..286c6130b 100644 --- a/reflex/components/radix/themes/components/tabs.pyi +++ b/reflex/components/radix/themes/components/tabs.pyi @@ -41,7 +41,9 @@ class TabsRoot(RadixThemesComponent): autofocus: Optional[bool] = None, custom_attrs: Optional[Dict[str, Union[Var, str]]] = 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_context_menu: Optional[EventType[[], BASE_STATE]] = None, on_double_click: Optional[EventType[[], BASE_STATE]] = None, @@ -341,7 +343,9 @@ class Tabs(ComponentNamespace): autofocus: Optional[bool] = None, custom_attrs: Optional[Dict[str, Union[Var, str]]] = 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_context_menu: Optional[EventType[[], BASE_STATE]] = None, on_double_click: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/themes/components/text_area.py b/reflex/components/radix/themes/components/text_area.py index 9f006c2e3..87f56e911 100644 --- a/reflex/components/radix/themes/components/text_area.py +++ b/reflex/components/radix/themes/components/text_area.py @@ -8,11 +8,7 @@ from reflex.components.core.debounce import DebounceInput from reflex.components.el import elements from reflex.vars.base import Var -from ..base import ( - LiteralAccentColor, - LiteralRadius, - RadixThemesComponent, -) +from ..base import LiteralAccentColor, LiteralRadius, RadixThemesComponent LiteralTextAreaSize = Literal["1", "2", "3"] diff --git a/reflex/components/radix/themes/components/text_area.pyi b/reflex/components/radix/themes/components/text_area.pyi index f38ef1b00..bf650c10d 100644 --- a/reflex/components/radix/themes/components/text_area.pyi +++ b/reflex/components/radix/themes/components/text_area.pyi @@ -7,7 +7,7 @@ from typing import Any, Dict, Literal, Optional, Union, overload from reflex.components.core.breakpoints import Breakpoints from reflex.components.el import elements -from reflex.event import BASE_STATE, EventType +from reflex.event import BASE_STATE, EventType, KeyInputInfo from reflex.style import Style from reflex.vars.base import Var @@ -168,14 +168,32 @@ class TextArea(RadixThemesComponent, elements.Textarea): class_name: Optional[Any] = None, autofocus: Optional[bool] = None, custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, - on_blur: Optional[EventType[[str], BASE_STATE]] = None, - on_change: Optional[EventType[[str], BASE_STATE]] = None, + on_blur: Optional[ + Union[EventType[[], BASE_STATE], EventType[[str], BASE_STATE]] + ] = None, + on_change: Optional[ + Union[EventType[[], BASE_STATE], EventType[[str], BASE_STATE]] + ] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, on_double_click: Optional[EventType[[], BASE_STATE]] = None, - on_focus: Optional[EventType[[str], BASE_STATE]] = None, - on_key_down: Optional[EventType[[str], BASE_STATE]] = None, - on_key_up: Optional[EventType[[str], BASE_STATE]] = None, + on_focus: Optional[ + Union[EventType[[], BASE_STATE], EventType[[str], BASE_STATE]] + ] = None, + on_key_down: Optional[ + Union[ + EventType[[], BASE_STATE], + EventType[[str], BASE_STATE], + EventType[[str, KeyInputInfo], BASE_STATE], + ] + ] = None, + on_key_up: Optional[ + Union[ + EventType[[], BASE_STATE], + EventType[[str], BASE_STATE], + EventType[[str, KeyInputInfo], BASE_STATE], + ] + ] = None, on_mount: Optional[EventType[[], BASE_STATE]] = None, on_mouse_down: Optional[EventType[[], BASE_STATE]] = None, on_mouse_enter: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/themes/components/text_field.py b/reflex/components/radix/themes/components/text_field.py index 4277e93e0..d5d851839 100644 --- a/reflex/components/radix/themes/components/text_field.py +++ b/reflex/components/radix/themes/components/text_field.py @@ -11,11 +11,7 @@ from reflex.components.el import elements from reflex.event import EventHandler, input_event, key_event from reflex.vars.base import Var -from ..base import ( - LiteralAccentColor, - LiteralRadius, - RadixThemesComponent, -) +from ..base import LiteralAccentColor, LiteralRadius, RadixThemesComponent LiteralTextFieldSize = Literal["1", "2", "3"] LiteralTextFieldVariant = Literal["classic", "surface", "soft"] diff --git a/reflex/components/radix/themes/components/text_field.pyi b/reflex/components/radix/themes/components/text_field.pyi index 9d949e299..455e47fcf 100644 --- a/reflex/components/radix/themes/components/text_field.pyi +++ b/reflex/components/radix/themes/components/text_field.pyi @@ -8,7 +8,7 @@ from typing import Any, Dict, Literal, Optional, Union, overload from reflex.components.component import ComponentNamespace from reflex.components.core.breakpoints import Breakpoints 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.vars.base import Var @@ -149,14 +149,32 @@ class TextFieldRoot(elements.Div, RadixThemesComponent): class_name: Optional[Any] = None, autofocus: Optional[bool] = None, custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, - on_blur: Optional[EventType[[str], BASE_STATE]] = None, - on_change: Optional[EventType[[str], BASE_STATE]] = None, + on_blur: Optional[ + Union[EventType[[], BASE_STATE], EventType[[str], BASE_STATE]] + ] = None, + on_change: Optional[ + Union[EventType[[], BASE_STATE], EventType[[str], BASE_STATE]] + ] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, on_double_click: Optional[EventType[[], BASE_STATE]] = None, - on_focus: Optional[EventType[[str], BASE_STATE]] = None, - on_key_down: Optional[EventType[[str], BASE_STATE]] = None, - on_key_up: Optional[EventType[[str], BASE_STATE]] = None, + on_focus: Optional[ + Union[EventType[[], BASE_STATE], EventType[[str], BASE_STATE]] + ] = None, + on_key_down: Optional[ + Union[ + EventType[[], BASE_STATE], + EventType[[str], BASE_STATE], + EventType[[str, KeyInputInfo], BASE_STATE], + ] + ] = None, + on_key_up: Optional[ + Union[ + EventType[[], BASE_STATE], + EventType[[str], BASE_STATE], + EventType[[str, KeyInputInfo], BASE_STATE], + ] + ] = None, on_mount: Optional[EventType[[], BASE_STATE]] = None, on_mouse_down: Optional[EventType[[], BASE_STATE]] = None, on_mouse_enter: Optional[EventType[[], BASE_STATE]] = None, @@ -466,14 +484,32 @@ class TextField(ComponentNamespace): class_name: Optional[Any] = None, autofocus: Optional[bool] = None, custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, - on_blur: Optional[EventType[[str], BASE_STATE]] = None, - on_change: Optional[EventType[[str], BASE_STATE]] = None, + on_blur: Optional[ + Union[EventType[[], BASE_STATE], EventType[[str], BASE_STATE]] + ] = None, + on_change: Optional[ + Union[EventType[[], BASE_STATE], EventType[[str], BASE_STATE]] + ] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, on_double_click: Optional[EventType[[], BASE_STATE]] = None, - on_focus: Optional[EventType[[str], BASE_STATE]] = None, - on_key_down: Optional[EventType[[str], BASE_STATE]] = None, - on_key_up: Optional[EventType[[str], BASE_STATE]] = None, + on_focus: Optional[ + Union[EventType[[], BASE_STATE], EventType[[str], BASE_STATE]] + ] = None, + on_key_down: Optional[ + Union[ + EventType[[], BASE_STATE], + EventType[[str], BASE_STATE], + EventType[[str, KeyInputInfo], BASE_STATE], + ] + ] = None, + on_key_up: Optional[ + Union[ + EventType[[], BASE_STATE], + EventType[[str], BASE_STATE], + EventType[[str, KeyInputInfo], BASE_STATE], + ] + ] = None, on_mount: Optional[EventType[[], BASE_STATE]] = None, on_mouse_down: Optional[EventType[[], BASE_STATE]] = None, on_mouse_enter: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/themes/components/tooltip.py b/reflex/components/radix/themes/components/tooltip.py index 3bc61f545..07bab1a4a 100644 --- a/reflex/components/radix/themes/components/tooltip.py +++ b/reflex/components/radix/themes/components/tooltip.py @@ -7,9 +7,7 @@ from reflex.event import EventHandler, no_args_event_spec, passthrough_event_spe from reflex.utils import format from reflex.vars.base import Var -from ..base import ( - RadixThemesComponent, -) +from ..base import RadixThemesComponent LiteralSideType = Literal[ "top", diff --git a/reflex/components/radix/themes/components/tooltip.pyi b/reflex/components/radix/themes/components/tooltip.pyi index ba59287eb..a46897e32 100644 --- a/reflex/components/radix/themes/components/tooltip.pyi +++ b/reflex/components/radix/themes/components/tooltip.pyi @@ -5,10 +5,7 @@ # ------------------------------------------------------ from typing import Any, Dict, Literal, Optional, Union, overload -from reflex.event import ( - BASE_STATE, - EventType, -) +from reflex.event import BASE_STATE, EventType from reflex.style import Style from reflex.vars.base import Var @@ -79,7 +76,9 @@ class Tooltip(RadixThemesComponent): on_mouse_out: Optional[EventType[[], BASE_STATE]] = None, on_mouse_over: Optional[EventType[[], BASE_STATE]] = None, on_mouse_up: Optional[EventType[[], BASE_STATE]] = None, - on_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_scroll: Optional[EventType[[], BASE_STATE]] = None, on_unmount: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/themes/layout/base.py b/reflex/components/radix/themes/layout/base.py index 3ee78d209..61ba19710 100644 --- a/reflex/components/radix/themes/layout/base.py +++ b/reflex/components/radix/themes/layout/base.py @@ -7,11 +7,7 @@ from typing import Literal from reflex.components.core.breakpoints import Responsive from reflex.vars.base import Var -from ..base import ( - CommonMarginProps, - LiteralSpacing, - RadixThemesComponent, -) +from ..base import CommonMarginProps, LiteralSpacing, RadixThemesComponent LiteralBoolNumber = Literal["0", "1"] diff --git a/reflex/components/radix/themes/layout/flex.py b/reflex/components/radix/themes/layout/flex.py index 8be16973d..4403a9542 100644 --- a/reflex/components/radix/themes/layout/flex.py +++ b/reflex/components/radix/themes/layout/flex.py @@ -8,12 +8,7 @@ from reflex.components.core.breakpoints import Responsive from reflex.components.el import elements from reflex.vars.base import Var -from ..base import ( - LiteralAlign, - LiteralJustify, - LiteralSpacing, - RadixThemesComponent, -) +from ..base import LiteralAlign, LiteralJustify, LiteralSpacing, RadixThemesComponent LiteralFlexDirection = Literal["row", "column", "row-reverse", "column-reverse"] LiteralFlexWrap = Literal["nowrap", "wrap", "wrap-reverse"] diff --git a/reflex/components/radix/themes/layout/grid.py b/reflex/components/radix/themes/layout/grid.py index b9ac28d41..3601e213a 100644 --- a/reflex/components/radix/themes/layout/grid.py +++ b/reflex/components/radix/themes/layout/grid.py @@ -8,12 +8,7 @@ from reflex.components.core.breakpoints import Responsive from reflex.components.el import elements from reflex.vars.base import Var -from ..base import ( - LiteralAlign, - LiteralJustify, - LiteralSpacing, - RadixThemesComponent, -) +from ..base import LiteralAlign, LiteralJustify, LiteralSpacing, RadixThemesComponent LiteralGridFlow = Literal["row", "column", "dense", "row-dense", "column-dense"] diff --git a/reflex/components/radix/themes/typography/blockquote.py b/reflex/components/radix/themes/typography/blockquote.py index a60c05471..e32172e00 100644 --- a/reflex/components/radix/themes/typography/blockquote.py +++ b/reflex/components/radix/themes/typography/blockquote.py @@ -9,14 +9,8 @@ from reflex.components.core.breakpoints import Responsive from reflex.components.el import elements from reflex.vars.base import Var -from ..base import ( - LiteralAccentColor, - RadixThemesComponent, -) -from .base import ( - LiteralTextSize, - LiteralTextWeight, -) +from ..base import LiteralAccentColor, RadixThemesComponent +from .base import LiteralTextSize, LiteralTextWeight class Blockquote(elements.Blockquote, RadixThemesComponent): diff --git a/reflex/components/radix/themes/typography/code.py b/reflex/components/radix/themes/typography/code.py index 663f260da..ca19859d3 100644 --- a/reflex/components/radix/themes/typography/code.py +++ b/reflex/components/radix/themes/typography/code.py @@ -9,15 +9,8 @@ from reflex.components.core.breakpoints import Responsive from reflex.components.el import elements from reflex.vars.base import Var -from ..base import ( - LiteralAccentColor, - LiteralVariant, - RadixThemesComponent, -) -from .base import ( - LiteralTextSize, - LiteralTextWeight, -) +from ..base import LiteralAccentColor, LiteralVariant, RadixThemesComponent +from .base import LiteralTextSize, LiteralTextWeight class Code(elements.Code, RadixThemesComponent): diff --git a/reflex/components/radix/themes/typography/heading.py b/reflex/components/radix/themes/typography/heading.py index f5fec8bb1..03e109717 100644 --- a/reflex/components/radix/themes/typography/heading.py +++ b/reflex/components/radix/themes/typography/heading.py @@ -9,16 +9,8 @@ from reflex.components.core.breakpoints import Responsive from reflex.components.el import elements from reflex.vars.base import Var -from ..base import ( - LiteralAccentColor, - RadixThemesComponent, -) -from .base import ( - LiteralTextAlign, - LiteralTextSize, - LiteralTextTrim, - LiteralTextWeight, -) +from ..base import LiteralAccentColor, RadixThemesComponent +from .base import LiteralTextAlign, LiteralTextSize, LiteralTextTrim, LiteralTextWeight class Heading(elements.H1, RadixThemesComponent): diff --git a/reflex/components/radix/themes/typography/link.py b/reflex/components/radix/themes/typography/link.py index e51209dce..6e3d2f983 100644 --- a/reflex/components/radix/themes/typography/link.py +++ b/reflex/components/radix/themes/typography/link.py @@ -16,15 +16,8 @@ from reflex.components.next.link import NextLink from reflex.utils.imports import ImportDict from reflex.vars.base import Var -from ..base import ( - LiteralAccentColor, - RadixThemesComponent, -) -from .base import ( - LiteralTextSize, - LiteralTextTrim, - LiteralTextWeight, -) +from ..base import LiteralAccentColor, RadixThemesComponent +from .base import LiteralTextSize, LiteralTextTrim, LiteralTextWeight LiteralLinkUnderline = Literal["auto", "hover", "always", "none"] diff --git a/reflex/components/radix/themes/typography/text.py b/reflex/components/radix/themes/typography/text.py index 24b09c753..e3576360a 100644 --- a/reflex/components/radix/themes/typography/text.py +++ b/reflex/components/radix/themes/typography/text.py @@ -12,16 +12,8 @@ from reflex.components.core.breakpoints import Responsive from reflex.components.el import elements from reflex.vars.base import Var -from ..base import ( - LiteralAccentColor, - RadixThemesComponent, -) -from .base import ( - LiteralTextAlign, - LiteralTextSize, - LiteralTextTrim, - LiteralTextWeight, -) +from ..base import LiteralAccentColor, RadixThemesComponent +from .base import LiteralTextAlign, LiteralTextSize, LiteralTextTrim, LiteralTextWeight LiteralType = Literal[ "p", diff --git a/reflex/components/react_player/audio.pyi b/reflex/components/react_player/audio.pyi index 9f52cebf6..a092251fe 100644 --- a/reflex/components/react_player/audio.pyi +++ b/reflex/components/react_player/audio.pyi @@ -42,7 +42,9 @@ class Audio(ReactPlayer): on_context_menu: Optional[EventType[[], BASE_STATE]] = None, on_disable_pip: 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_ended: 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_rate_change: Optional[EventType[[], BASE_STATE]] = None, on_progress: Optional[ - EventType[ - [reflex.components.react_player.react_player.Progress], BASE_STATE + Union[ + EventType[[], BASE_STATE], + EventType[ + [reflex.components.react_player.react_player.Progress], BASE_STATE + ], ] ] = None, on_ready: 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_unmount: Optional[EventType[[], BASE_STATE]] = None, **props, diff --git a/reflex/components/react_player/react_player.pyi b/reflex/components/react_player/react_player.pyi index 64e8d05b7..06ec95aab 100644 --- a/reflex/components/react_player/react_player.pyi +++ b/reflex/components/react_player/react_player.pyi @@ -47,7 +47,9 @@ class ReactPlayer(NoSSRComponent): on_context_menu: Optional[EventType[[], BASE_STATE]] = None, on_disable_pip: 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_ended: 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_playback_quality_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_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_unmount: Optional[EventType[[], BASE_STATE]] = None, **props, diff --git a/reflex/components/react_player/video.pyi b/reflex/components/react_player/video.pyi index 28f3e169b..a8f881ceb 100644 --- a/reflex/components/react_player/video.pyi +++ b/reflex/components/react_player/video.pyi @@ -42,7 +42,9 @@ class Video(ReactPlayer): on_context_menu: Optional[EventType[[], BASE_STATE]] = None, on_disable_pip: 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_ended: 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_rate_change: Optional[EventType[[], BASE_STATE]] = None, on_progress: Optional[ - EventType[ - [reflex.components.react_player.react_player.Progress], BASE_STATE + Union[ + EventType[[], BASE_STATE], + EventType[ + [reflex.components.react_player.react_player.Progress], BASE_STATE + ], ] ] = None, on_ready: 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_unmount: Optional[EventType[[], BASE_STATE]] = None, **props, diff --git a/reflex/components/recharts/cartesian.pyi b/reflex/components/recharts/cartesian.pyi index f143d411b..24d85f013 100644 --- a/reflex/components/recharts/cartesian.pyi +++ b/reflex/components/recharts/cartesian.pyi @@ -10,9 +10,7 @@ from reflex.event import BASE_STATE, EventType from reflex.style import Style from reflex.vars.base import Var -from .recharts import ( - Recharts, -) +from .recharts import Recharts class Axis(Recharts): @overload diff --git a/reflex/components/recharts/charts.pyi b/reflex/components/recharts/charts.pyi index 4a2a9e332..94cabdf00 100644 --- a/reflex/components/recharts/charts.pyi +++ b/reflex/components/recharts/charts.pyi @@ -10,9 +10,7 @@ from reflex.event import BASE_STATE, EventType from reflex.style import Style from reflex.vars.base import Var -from .recharts import ( - RechartsCharts, -) +from .recharts import RechartsCharts class ChartBase(RechartsCharts): @overload diff --git a/reflex/components/recharts/general.pyi b/reflex/components/recharts/general.pyi index 996eb90ce..fa3362500 100644 --- a/reflex/components/recharts/general.pyi +++ b/reflex/components/recharts/general.pyi @@ -11,9 +11,7 @@ from reflex.event import BASE_STATE, EventType from reflex.style import Style from reflex.vars.base import Var -from .recharts import ( - Recharts, -) +from .recharts import Recharts class ResponsiveContainer(Recharts, MemoizationLeaf): @overload diff --git a/reflex/components/recharts/polar.pyi b/reflex/components/recharts/polar.pyi index 1c8d7316e..308c796cf 100644 --- a/reflex/components/recharts/polar.pyi +++ b/reflex/components/recharts/polar.pyi @@ -10,9 +10,7 @@ from reflex.event import BASE_STATE, EventType from reflex.style import Style from reflex.vars.base import Var -from .recharts import ( - Recharts, -) +from .recharts import Recharts class Pie(Recharts): def get_event_triggers(self) -> dict[str, Union[Var, Any]]: ... diff --git a/reflex/components/suneditor/editor.pyi b/reflex/components/suneditor/editor.pyi index e89d708ed..8ada33aba 100644 --- a/reflex/components/suneditor/editor.pyi +++ b/reflex/components/suneditor/editor.pyi @@ -127,8 +127,12 @@ class Editor(NoSSRComponent): class_name: Optional[Any] = None, autofocus: Optional[bool] = None, custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, - on_blur: Optional[EventType[[str], BASE_STATE]] = None, - on_change: Optional[EventType[[str], BASE_STATE]] = None, + on_blur: Optional[ + Union[EventType[[], BASE_STATE], EventType[[str], BASE_STATE]] + ] = None, + on_change: Optional[ + Union[EventType[[], BASE_STATE], EventType[[str], BASE_STATE]] + ] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, on_copy: Optional[EventType[[], BASE_STATE]] = None, @@ -136,7 +140,9 @@ class Editor(NoSSRComponent): on_double_click: Optional[EventType[[], BASE_STATE]] = None, on_focus: 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_mouse_down: 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_over: 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_unmount: Optional[EventType[[], BASE_STATE]] = None, - toggle_code_view: Optional[EventType[[bool], BASE_STATE]] = None, - toggle_full_screen: Optional[EventType[[bool], BASE_STATE]] = None, + toggle_code_view: Optional[ + Union[EventType[[], BASE_STATE], EventType[[bool], BASE_STATE]] + ] = None, + toggle_full_screen: Optional[ + Union[EventType[[], BASE_STATE], EventType[[bool], BASE_STATE]] + ] = None, **props, ) -> "Editor": """Create an instance of Editor. No children allowed. diff --git a/reflex/components/tags/iter_tag.py b/reflex/components/tags/iter_tag.py index fec27f3d9..38ecaf81c 100644 --- a/reflex/components/tags/iter_tag.py +++ b/reflex/components/tags/iter_tag.py @@ -4,16 +4,7 @@ from __future__ import annotations import dataclasses import inspect -from typing import ( - TYPE_CHECKING, - Any, - Callable, - Iterable, - Tuple, - Type, - Union, - get_args, -) +from typing import TYPE_CHECKING, Any, Callable, Iterable, Tuple, Type, Union, get_args from reflex.components.tags.tag import Tag from reflex.vars import LiteralArrayVar, Var, get_unique_variable_name diff --git a/reflex/constants/__init__.py b/reflex/constants/__init__.py index a939cf273..e816da0f7 100644 --- a/reflex/constants/__init__.py +++ b/reflex/constants/__init__.py @@ -41,16 +41,9 @@ from .config import ( GitIgnore, RequirementsTxt, ) -from .custom_components import ( - CustomComponents, -) +from .custom_components import CustomComponents from .event import Endpoint, EventTriggers, SocketEvent -from .installer import ( - Bun, - Fnm, - Node, - PackageJson, -) +from .installer import Bun, Fnm, Node, PackageJson from .route import ( ROUTE_NOT_FOUND, ROUTER, diff --git a/reflex/event.py b/reflex/event.py index ddcf389ea..e51d1cc07 100644 --- a/reflex/event.py +++ b/reflex/event.py @@ -30,6 +30,7 @@ from typing_extensions import ( ParamSpec, Protocol, TypeAliasType, + TypedDict, TypeVar, get_args, get_origin, @@ -38,16 +39,10 @@ from typing_extensions import ( from reflex import constants from reflex.constants.state import FRONTEND_EVENT_STATE from reflex.utils import console, format -from reflex.utils.exceptions import ( - EventFnArgMismatch, - EventHandlerArgTypeMismatch, -) +from reflex.utils.exceptions import EventFnArgMismatch, EventHandlerArgTypeMismatch from reflex.utils.types import ArgsSpec, GenericType, typehint_issubclass from reflex.vars import VarData -from reflex.vars.base import ( - LiteralVar, - Var, -) +from reflex.vars.base import LiteralVar, Var from reflex.vars.function import ( ArgsFunctionOperation, FunctionStringVar, @@ -448,6 +443,10 @@ class JavasciptKeyboardEvent: """Interface for a Javascript KeyboardEvent https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent.""" key: str = "" + altKey: bool = False + ctrlKey: bool = False + metaKey: bool = False + shiftKey: bool = False 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,) -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. Args: @@ -471,7 +479,17 @@ def key_event(e: Var[JavasciptKeyboardEvent]) -> Tuple[Var[str]]: Returns: 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[()]: diff --git a/reflex/experimental/client_state.py b/reflex/experimental/client_state.py index ca14b8d2a..a1abce3ea 100644 --- a/reflex/experimental/client_state.py +++ b/reflex/experimental/client_state.py @@ -10,10 +10,7 @@ from typing import Any, Callable, Union from reflex import constants from reflex.event import EventChain, EventHandler, EventSpec, run_script from reflex.utils.imports import ImportVar -from reflex.vars import ( - VarData, - get_unique_variable_name, -) +from reflex.vars import VarData, get_unique_variable_name from reflex.vars.base import LiteralVar, Var from reflex.vars.function import FunctionVar diff --git a/reflex/experimental/layout.pyi b/reflex/experimental/layout.pyi index bfac49161..a334e8de7 100644 --- a/reflex/experimental/layout.pyi +++ b/reflex/experimental/layout.pyi @@ -119,7 +119,9 @@ class DrawerSidebar(DrawerRoot): class_name: Optional[Any] = None, autofocus: Optional[bool] = 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_click: 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_over: 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_unmount: Optional[EventType[[], BASE_STATE]] = None, **props, diff --git a/reflex/istate/wrappers.py b/reflex/istate/wrappers.py index 7f010eb9e..d4e74cf8a 100644 --- a/reflex/istate/wrappers.py +++ b/reflex/istate/wrappers.py @@ -3,11 +3,7 @@ from typing import Any from reflex.istate.proxy import ReadOnlyStateProxy -from reflex.state import ( - _split_substate_key, - _substate_key, - get_state_manager, -) +from reflex.state import _split_substate_key, _substate_key, get_state_manager async def get_state(token, state_cls: Any | None = None) -> ReadOnlyStateProxy: diff --git a/reflex/state.py b/reflex/state.py index a53df7b6f..94ff35a88 100644 --- a/reflex/state.py +++ b/reflex/state.py @@ -44,9 +44,7 @@ from typing_extensions import Self from reflex import event from reflex.config import get_config from reflex.istate.data import RouterData -from reflex.istate.storage import ( - ClientStorageBase, -) +from reflex.istate.storage import ClientStorageBase from reflex.vars.base import ( ComputedVar, DynamicRouteVar, diff --git a/reflex/utils/pyi_generator.py b/reflex/utils/pyi_generator.py index 8fe46fe9e..fb0a8f8c5 100644 --- a/reflex/utils/pyi_generator.py +++ b/reflex/utils/pyi_generator.py @@ -76,6 +76,7 @@ DEFAULT_IMPORTS = { "EventSpec", "EventType", "BASE_STATE", + "KeyInputInfo", ], "reflex.style": ["Style"], "reflex.vars.base": ["Var"], @@ -509,11 +510,18 @@ def _generate_component_create_functiondef( # Convert each argument type to its AST representation type_args = [type_to_ast(arg, cls=clz) for arg in arguments_without_var] - # Join the type arguments with commas for EventType - args_str = ", ".join(ast.unparse(arg) for arg in type_args) + # Get all prefixes of the type arguments + 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 - 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["): inside_of_tuple = annotation.removeprefix("Tuple[").removesuffix("]") @@ -545,8 +553,15 @@ def _generate_component_create_functiondef( 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( - 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]") diff --git a/reflex/utils/types.py b/reflex/utils/types.py index bcb52464a..27b6e7ce7 100644 --- a/reflex/utils/types.py +++ b/reflex/utils/types.py @@ -26,9 +26,7 @@ from typing import ( get_args, get_type_hints, ) -from typing import ( - get_origin as get_origin_og, -) +from typing import get_origin as get_origin_og import sqlalchemy @@ -42,12 +40,7 @@ except ModuleNotFoundError: from sqlalchemy.ext.associationproxy import AssociationProxyInstance from sqlalchemy.ext.hybrid import hybrid_property -from sqlalchemy.orm import ( - DeclarativeBase, - Mapped, - QueryableAttribute, - Relationship, -) +from sqlalchemy.orm import DeclarativeBase, Mapped, QueryableAttribute, Relationship from reflex import constants from reflex.base import Base diff --git a/reflex/vars/base.py b/reflex/vars/base.py index 0e6bbaec7..1fa0a539e 100644 --- a/reflex/vars/base.py +++ b/reflex/vars/base.py @@ -38,13 +38,7 @@ from typing import ( overload, ) -from typing_extensions import ( - ParamSpec, - TypeGuard, - deprecated, - get_type_hints, - override, -) +from typing_extensions import ParamSpec, TypeGuard, deprecated, get_type_hints, override from reflex import constants from reflex.base import Base @@ -75,10 +69,7 @@ from reflex.utils.types import ( if TYPE_CHECKING: from reflex.state import BaseState - from .number import ( - BooleanVar, - NumberVar, - ) + from .number import BooleanVar, NumberVar from .object import ObjectVar from .sequence import ArrayVar, StringVar diff --git a/reflex/vars/function.py b/reflex/vars/function.py index 9d734a458..49ef99614 100644 --- a/reflex/vars/function.py +++ b/reflex/vars/function.py @@ -8,13 +8,7 @@ from typing import Any, Callable, Optional, Tuple, Type, Union from reflex.utils.types import GenericType -from .base import ( - CachedVarOperation, - LiteralVar, - Var, - VarData, - cached_property_no_lock, -) +from .base import CachedVarOperation, LiteralVar, Var, VarData, cached_property_no_lock class FunctionVar(Var[Callable], python_types=Callable): diff --git a/tests/units/components/test_component.py b/tests/units/components/test_component.py index 111431ab3..e4744b9fb 100644 --- a/tests/units/components/test_component.py +++ b/tests/units/components/test_component.py @@ -27,9 +27,7 @@ from reflex.event import ( from reflex.state import BaseState from reflex.style import Style from reflex.utils import imports -from reflex.utils.exceptions import ( - EventFnArgMismatch, -) +from reflex.utils.exceptions import EventFnArgMismatch from reflex.utils.imports import ImportDict, ImportVar, ParsedImportDict, parse_imports from reflex.vars import VarData from reflex.vars.base import LiteralVar, Var diff --git a/tests/units/test_var.py b/tests/units/test_var.py index 2f3f81e2c..8ff829eac 100644 --- a/tests/units/test_var.py +++ b/tests/units/test_var.py @@ -23,11 +23,7 @@ from reflex.vars.base import ( var_operation_return, ) from reflex.vars.function import ArgsFunctionOperation, FunctionStringVar -from reflex.vars.number import ( - LiteralBooleanVar, - LiteralNumberVar, - NumberVar, -) +from reflex.vars.number import LiteralBooleanVar, LiteralNumberVar, NumberVar from reflex.vars.object import LiteralObjectVar, ObjectVar from reflex.vars.sequence import ( ArrayVar, diff --git a/tests/units/utils/test_utils.py b/tests/units/utils/test_utils.py index c04df9c75..dd1a3b3ef 100644 --- a/tests/units/utils/test_utils.py +++ b/tests/units/utils/test_utils.py @@ -13,11 +13,7 @@ from reflex.base import Base from reflex.config import environment from reflex.event import EventHandler from reflex.state import BaseState -from reflex.utils import ( - build, - prerequisites, - types, -) +from reflex.utils import build, prerequisites, types from reflex.utils import exec as utils_exec from reflex.utils.exceptions import ReflexError, SystemPackageMissingError from reflex.vars.base import Var