From b9d73edd6605797642fd67171d574fdfae98b30b Mon Sep 17 00:00:00 2001 From: Khaleel Al-Adhami Date: Wed, 6 Nov 2024 15:10:02 -0800 Subject: [PATCH 01/17] 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 From 93ae79aa60104ab893fdcff3d615dcdcc11bc25b Mon Sep 17 00:00:00 2001 From: Khaleel Al-Adhami Date: Wed, 6 Nov 2024 15:13:00 -0800 Subject: [PATCH 02/17] fix call_function events sent from backend (#4316) --- reflex/.templates/web/utils/state.js | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/reflex/.templates/web/utils/state.js b/reflex/.templates/web/utils/state.js index 66df09ee1..3899ddc89 100644 --- a/reflex/.templates/web/utils/state.js +++ b/reflex/.templates/web/utils/state.js @@ -238,7 +238,10 @@ export const applyEvent = async (event, socket) => { return false; } - if (event.name == "_call_function") { + if ( + event.name == "_call_function" && + typeof event.payload.function !== "string" + ) { try { const eval_result = event.payload.function(); if (event.payload.callback) { @@ -257,9 +260,13 @@ export const applyEvent = async (event, socket) => { return false; } - if (event.name == "_call_script") { + if (event.name == "_call_script" || event.name == "_call_function") { try { - const eval_result = eval(event.payload.javascript_code); + const eval_result = + event.name == "_call_script" + ? eval(event.payload.javascript_code) + : eval(event.payload.function)(); + if (event.payload.callback) { if (!!eval_result && typeof eval_result.then === "function") { eval(event.payload.callback)(await eval_result); From 3bd35f53f26263f36762e67ec91817649e7e2a18 Mon Sep 17 00:00:00 2001 From: Khaleel Al-Adhami Date: Wed, 6 Nov 2024 16:41:13 -0800 Subject: [PATCH 03/17] add type hinting for plotly (#4279) * add type hinting for plotly * fix merge --- reflex/components/plotly/plotly.py | 155 ++++++++++++++-------------- reflex/components/plotly/plotly.pyi | 72 ++++++++----- 2 files changed, 124 insertions(+), 103 deletions(-) diff --git a/reflex/components/plotly/plotly.py b/reflex/components/plotly/plotly.py index c93488d40..aff6e62b0 100644 --- a/reflex/components/plotly/plotly.py +++ b/reflex/components/plotly/plotly.py @@ -2,12 +2,13 @@ from __future__ import annotations -from typing import Any, Dict, List +from typing import Any, Dict, List, Tuple, Union + +from typing_extensions import TypedDict, TypeVar -from reflex.base import Base from reflex.components.component import Component, NoSSRComponent from reflex.components.core.cond import color_mode_cond -from reflex.event import EventHandler +from reflex.event import EventHandler, no_args_event_spec from reflex.utils import console from reflex.vars.base import LiteralVar, Var @@ -21,19 +22,7 @@ except ImportError: Template = Any # type: ignore -def _event_data_signature(e0: Var) -> List[Any]: - """For plotly events with event data and no points. - - Args: - e0: The event data. - - Returns: - The event key extracted from the event data (if defined). - """ - return [Var(_js_expr=f"{e0}?.event")] - - -def _event_points_data_signature(e0: Var) -> List[Any]: +def _event_points_data_signature(e0: Var) -> Tuple[Var[List[Point]]]: """For plotly events with event data containing a point array. Args: @@ -42,51 +31,63 @@ def _event_points_data_signature(e0: Var) -> List[Any]: Returns: The event data and the extracted points. """ - return [ - Var(_js_expr=f"{e0}?.event"), - Var(_js_expr=f"extractPoints({e0}?.points)"), + return (Var(_js_expr=f"extractPoints({e0}?.points)"),) + + +T = TypeVar("T") + +ItemOrList = Union[T, List[T]] + + +class BBox(TypedDict): + """Bounding box for a point in a plotly graph.""" + + x0: Union[float, int, None] + x1: Union[float, int, None] + y0: Union[float, int, None] + y1: Union[float, int, None] + z0: Union[float, int, None] + z1: Union[float, int, None] + + +class Point(TypedDict): + """A point in a plotly graph.""" + + x: Union[float, int, None] + y: Union[float, int, None] + z: Union[float, int, None] + lat: Union[float, int, None] + lon: Union[float, int, None] + curveNumber: Union[int, None] + pointNumber: Union[int, None] + pointNumbers: Union[List[int], None] + pointIndex: Union[int, None] + markerColor: Union[ + ItemOrList[ + ItemOrList[ + Union[ + float, + int, + str, + None, + ] + ] + ], + None, ] - - -class _ButtonClickData(Base): - """Event data structure for plotly UI buttons.""" - - menu: Any - button: Any - active: Any - - -def _button_click_signature(e0: _ButtonClickData) -> List[Any]: - """For plotly button click events. - - Args: - e0: The button click data. - - Returns: - The menu, button, and active state. - """ - return [e0.menu, e0.button, e0.active] - - -def _passthrough_signature(e0: Var) -> List[Any]: - """For plotly events with arbitrary serializable data, passed through directly. - - Args: - e0: The event data. - - Returns: - The event data. - """ - return [e0] - - -def _null_signature() -> List[Any]: - """For plotly events with no data or non-serializable data. Nothing passed through. - - Returns: - An empty list (nothing passed through). - """ - return [] + markerSize: Union[ + ItemOrList[ + ItemOrList[ + Union[ + float, + int, + None, + ] + ] + ], + None, + ] + bbox: Union[BBox, None] class Plotly(NoSSRComponent): @@ -116,49 +117,49 @@ class Plotly(NoSSRComponent): use_resize_handler: Var[bool] = LiteralVar.create(True) # Fired after the plot is redrawn. - on_after_plot: EventHandler[_passthrough_signature] + on_after_plot: EventHandler[no_args_event_spec] # Fired after the plot was animated. - on_animated: EventHandler[_null_signature] + on_animated: EventHandler[no_args_event_spec] # Fired while animating a single frame (does not currently pass data through). - on_animating_frame: EventHandler[_null_signature] + on_animating_frame: EventHandler[no_args_event_spec] # Fired when an animation is interrupted (to start a new animation for example). - on_animation_interrupted: EventHandler[_null_signature] + on_animation_interrupted: EventHandler[no_args_event_spec] # Fired when the plot is responsively sized. - on_autosize: EventHandler[_event_data_signature] + on_autosize: EventHandler[no_args_event_spec] # Fired whenever mouse moves over a plot. - on_before_hover: EventHandler[_event_data_signature] + on_before_hover: EventHandler[no_args_event_spec] # Fired when a plotly UI button is clicked. - on_button_clicked: EventHandler[_button_click_signature] + on_button_clicked: EventHandler[no_args_event_spec] # Fired when the plot is clicked. on_click: EventHandler[_event_points_data_signature] # Fired when a selection is cleared (via double click). - on_deselect: EventHandler[_null_signature] + on_deselect: EventHandler[no_args_event_spec] # Fired when the plot is double clicked. - on_double_click: EventHandler[_passthrough_signature] + on_double_click: EventHandler[no_args_event_spec] # Fired when a plot element is hovered over. on_hover: EventHandler[_event_points_data_signature] # Fired after the plot is layed out (zoom, pan, etc). - on_relayout: EventHandler[_passthrough_signature] + on_relayout: EventHandler[no_args_event_spec] # Fired while the plot is being layed out. - on_relayouting: EventHandler[_passthrough_signature] + on_relayouting: EventHandler[no_args_event_spec] # Fired after the plot style is changed. - on_restyle: EventHandler[_passthrough_signature] + on_restyle: EventHandler[no_args_event_spec] # Fired after the plot is redrawn. - on_redraw: EventHandler[_event_data_signature] + on_redraw: EventHandler[no_args_event_spec] # Fired after selecting plot elements. on_selected: EventHandler[_event_points_data_signature] @@ -167,10 +168,10 @@ class Plotly(NoSSRComponent): on_selecting: EventHandler[_event_points_data_signature] # Fired while an animation is occuring. - on_transitioning: EventHandler[_event_data_signature] + on_transitioning: EventHandler[no_args_event_spec] # Fired when a transition is stopped early. - on_transition_interrupted: EventHandler[_event_data_signature] + on_transition_interrupted: EventHandler[no_args_event_spec] # Fired when a hovered element is no longer hovered. on_unhover: EventHandler[_event_points_data_signature] @@ -216,8 +217,8 @@ const extractPoints = (points) => { pointNumber: point.pointNumber, pointNumbers: point.pointNumbers, pointIndex: point.pointIndex, - 'marker.color': point['marker.color'], - 'marker.size': point['marker.size'], + markerColor: point['marker.color'], + markerSize: point['marker.size'], bbox: bbox, }) }) diff --git a/reflex/components/plotly/plotly.pyi b/reflex/components/plotly/plotly.pyi index 4c87d589f..ba3f323f5 100644 --- a/reflex/components/plotly/plotly.pyi +++ b/reflex/components/plotly/plotly.pyi @@ -3,9 +3,10 @@ # ------------------- DO NOT EDIT ---------------------- # This file was generated by `reflex/utils/pyi_generator.py`! # ------------------------------------------------------ -from typing import Any, Dict, Optional, Union, overload +from typing import Any, Dict, List, Optional, Union, overload + +from typing_extensions import TypedDict, TypeVar -from reflex.base import Base from reflex.components.component import NoSSRComponent from reflex.event import BASE_STATE, EventType from reflex.style import Style @@ -20,11 +21,30 @@ except ImportError: console.warn("Plotly is not installed. Please run `pip install plotly`.") Figure = Any Template = Any +T = TypeVar("T") +ItemOrList = Union[T, List[T]] -class _ButtonClickData(Base): - menu: Any - button: Any - active: Any +class BBox(TypedDict): + x0: Union[float, int, None] + x1: Union[float, int, None] + y0: Union[float, int, None] + y1: Union[float, int, None] + z0: Union[float, int, None] + z1: Union[float, int, None] + +class Point(TypedDict): + x: Union[float, int, None] + y: Union[float, int, None] + z: Union[float, int, None] + lat: Union[float, int, None] + lon: Union[float, int, None] + curveNumber: Union[int, None] + pointNumber: Union[int, None] + pointNumbers: Union[List[int], None] + pointIndex: Union[int, None] + markerColor: Union[ItemOrList[ItemOrList[Union[float, int, str, None]]], None] + markerSize: Union[ItemOrList[ItemOrList[Union[float, int, None]]], None] + bbox: Union[BBox, None] class Plotly(NoSSRComponent): def add_imports(self) -> dict[str, str]: ... @@ -45,20 +65,20 @@ class Plotly(NoSSRComponent): class_name: Optional[Any] = None, autofocus: Optional[bool] = None, custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, - on_after_plot: Optional[EventType[..., BASE_STATE]] = None, - on_animated: Optional[EventType[..., BASE_STATE]] = None, - on_animating_frame: Optional[EventType[..., BASE_STATE]] = None, - on_animation_interrupted: Optional[EventType[..., BASE_STATE]] = None, - on_autosize: Optional[EventType[..., BASE_STATE]] = None, - on_before_hover: Optional[EventType[..., BASE_STATE]] = None, + on_after_plot: Optional[EventType[[], BASE_STATE]] = None, + on_animated: Optional[EventType[[], BASE_STATE]] = None, + on_animating_frame: Optional[EventType[[], BASE_STATE]] = None, + on_animation_interrupted: Optional[EventType[[], BASE_STATE]] = None, + on_autosize: Optional[EventType[[], BASE_STATE]] = None, + on_before_hover: Optional[EventType[[], BASE_STATE]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, - on_button_clicked: Optional[EventType[..., BASE_STATE]] = None, - on_click: Optional[EventType[..., BASE_STATE]] = None, + on_button_clicked: Optional[EventType[[], BASE_STATE]] = None, + on_click: Optional[EventType[[List[Point]], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, - on_deselect: Optional[EventType[..., BASE_STATE]] = None, - on_double_click: Optional[EventType[..., BASE_STATE]] = None, + on_deselect: Optional[EventType[[], BASE_STATE]] = None, + on_double_click: Optional[EventType[[], BASE_STATE]] = None, on_focus: Optional[EventType[[], BASE_STATE]] = None, - on_hover: Optional[EventType[..., BASE_STATE]] = None, + on_hover: Optional[EventType[[List[Point]], 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, @@ -67,16 +87,16 @@ class Plotly(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_redraw: Optional[EventType[..., BASE_STATE]] = None, - on_relayout: Optional[EventType[..., BASE_STATE]] = None, - on_relayouting: Optional[EventType[..., BASE_STATE]] = None, - on_restyle: Optional[EventType[..., BASE_STATE]] = None, + on_redraw: Optional[EventType[[], BASE_STATE]] = None, + on_relayout: Optional[EventType[[], BASE_STATE]] = None, + on_relayouting: Optional[EventType[[], BASE_STATE]] = None, + on_restyle: Optional[EventType[[], BASE_STATE]] = None, on_scroll: Optional[EventType[[], BASE_STATE]] = None, - on_selected: Optional[EventType[..., BASE_STATE]] = None, - on_selecting: Optional[EventType[..., BASE_STATE]] = None, - on_transition_interrupted: Optional[EventType[..., BASE_STATE]] = None, - on_transitioning: Optional[EventType[..., BASE_STATE]] = None, - on_unhover: Optional[EventType[..., BASE_STATE]] = None, + on_selected: Optional[EventType[[List[Point]], BASE_STATE]] = None, + on_selecting: Optional[EventType[[List[Point]], BASE_STATE]] = None, + on_transition_interrupted: Optional[EventType[[], BASE_STATE]] = None, + on_transitioning: Optional[EventType[[], BASE_STATE]] = None, + on_unhover: Optional[EventType[[List[Point]], BASE_STATE]] = None, on_unmount: Optional[EventType[[], BASE_STATE]] = None, **props, ) -> "Plotly": From 68407ce2d84fc975f1be274d719dac218b822de6 Mon Sep 17 00:00:00 2001 From: Khaleel Al-Adhami Date: Wed, 6 Nov 2024 16:56:26 -0800 Subject: [PATCH 04/17] unbreak pyi plotly (#4320) --- reflex/components/plotly/plotly.pyi | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/reflex/components/plotly/plotly.pyi b/reflex/components/plotly/plotly.pyi index ba3f323f5..c9847b67e 100644 --- a/reflex/components/plotly/plotly.pyi +++ b/reflex/components/plotly/plotly.pyi @@ -73,12 +73,16 @@ class Plotly(NoSSRComponent): on_before_hover: Optional[EventType[[], BASE_STATE]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_button_clicked: Optional[EventType[[], BASE_STATE]] = None, - on_click: Optional[EventType[[List[Point]], BASE_STATE]] = None, + on_click: Optional[ + Union[EventType[[], BASE_STATE], EventType[[List[Point]], BASE_STATE]] + ] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, on_deselect: Optional[EventType[[], BASE_STATE]] = None, on_double_click: Optional[EventType[[], BASE_STATE]] = None, on_focus: Optional[EventType[[], BASE_STATE]] = None, - on_hover: Optional[EventType[[List[Point]], BASE_STATE]] = None, + on_hover: Optional[ + Union[EventType[[], BASE_STATE], EventType[[List[Point]], 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, @@ -92,11 +96,17 @@ class Plotly(NoSSRComponent): on_relayouting: Optional[EventType[[], BASE_STATE]] = None, on_restyle: Optional[EventType[[], BASE_STATE]] = None, on_scroll: Optional[EventType[[], BASE_STATE]] = None, - on_selected: Optional[EventType[[List[Point]], BASE_STATE]] = None, - on_selecting: Optional[EventType[[List[Point]], BASE_STATE]] = None, + on_selected: Optional[ + Union[EventType[[], BASE_STATE], EventType[[List[Point]], BASE_STATE]] + ] = None, + on_selecting: Optional[ + Union[EventType[[], BASE_STATE], EventType[[List[Point]], BASE_STATE]] + ] = None, on_transition_interrupted: Optional[EventType[[], BASE_STATE]] = None, on_transitioning: Optional[EventType[[], BASE_STATE]] = None, - on_unhover: Optional[EventType[[List[Point]], BASE_STATE]] = None, + on_unhover: Optional[ + Union[EventType[[], BASE_STATE], EventType[[List[Point]], BASE_STATE]] + ] = None, on_unmount: Optional[EventType[[], BASE_STATE]] = None, **props, ) -> "Plotly": From e457d53924c6175f035980d9d98f9bbbabe68199 Mon Sep 17 00:00:00 2001 From: Simon Young <40179067+Kastier1@users.noreply.github.com> Date: Wed, 6 Nov 2024 17:18:41 -0800 Subject: [PATCH 05/17] Adding hosting v1 support (#4309) Co-authored-by: simon Co-authored-by: Khaleel Al-Adhami --- poetry.lock | 14 ++--- pyproject.toml | 2 +- reflex/reflex.py | 134 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 142 insertions(+), 8 deletions(-) diff --git a/poetry.lock b/poetry.lock index 15f8b951d..0fd0f7109 100644 --- a/poetry.lock +++ b/poetry.lock @@ -54,13 +54,13 @@ trio = ["trio (>=0.26.1)"] [[package]] name = "async-timeout" -version = "5.0.0" +version = "5.0.1" description = "Timeout context manager for asyncio programs" optional = false python-versions = ">=3.8" files = [ - {file = "async_timeout-5.0.0-py3-none-any.whl", hash = "sha256:904719a4bd6e0520047d0ddae220aabee67b877f7ca17bf8cea20f67f6247ae0"}, - {file = "async_timeout-5.0.0.tar.gz", hash = "sha256:49675ec889daacfe65ff66d2dde7dd1447a6f4b2f23721022e4ba121f8772a85"}, + {file = "async_timeout-5.0.1-py3-none-any.whl", hash = "sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c"}, + {file = "async_timeout-5.0.1.tar.gz", hash = "sha256:d9321a7a3d5a6a5e187e824d2fa0793ce379a202935782d555d6e9d2735677d3"}, ] [[package]] @@ -2198,13 +2198,13 @@ reflex = ">=0.6.0a" [[package]] name = "reflex-hosting-cli" -version = "0.1.13" +version = "0.1.14" description = "Reflex Hosting CLI" optional = false python-versions = "<4.0,>=3.8" files = [ - {file = "reflex_hosting_cli-0.1.13-py3-none-any.whl", hash = "sha256:5bfec7f3d7ce4bbd703989f086494e586a641ef37c9e60e60fb82bdfb07ff227"}, - {file = "reflex_hosting_cli-0.1.13.tar.gz", hash = "sha256:c5d6afdcfeb74cee046a374ddbd59116ab8ed797dae688fcc744dabae24dc571"}, + {file = "reflex_hosting_cli-0.1.14-py3-none-any.whl", hash = "sha256:b38676a39708511801bd666e5a9788d8eb4aeb6f9196bea77a8c4c6a6c06492f"}, + {file = "reflex_hosting_cli-0.1.14.tar.gz", hash = "sha256:8c7721b87dd2ce22db110d905ee01e78e5185f0e6dd521752f70aef6cf17b39f"}, ] [package.dependencies] @@ -3050,4 +3050,4 @@ type = ["pytest-mypy"] [metadata] lock-version = "2.0" python-versions = "^3.9" -content-hash = "664c8d3c78923d39d1d59227cb43416228ac396a7004344c058377886421c086" +content-hash = "fe91a9b22081a48be519ed3789e40904bd358a05fd6da912566592aa8d382f31" diff --git a/pyproject.toml b/pyproject.toml index 828c3d989..9e8edb0e9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -49,7 +49,7 @@ wrapt = [ {version = ">=1.11.0,<2.0", python = "<3.11"}, ] packaging = ">=23.1,<25.0" -reflex-hosting-cli = ">=0.1.2,<2.0" +reflex-hosting-cli = ">=0.1.4,<2.0" charset-normalizer = ">=3.3.2,<4.0" wheel = ">=0.42.0,<1.0" build = ">=1.0.3,<2.0" diff --git a/reflex/reflex.py b/reflex/reflex.py index 8c5f0fc6f..fa36b8601 100644 --- a/reflex/reflex.py +++ b/reflex/reflex.py @@ -11,6 +11,7 @@ import typer import typer.core from reflex_cli.deployments import deployments_cli from reflex_cli.utils import dependency +from reflex_cli.v2.deployments import hosting_cli from reflex import constants from reflex.config import environment, get_config @@ -383,6 +384,14 @@ def login( _login() +@cli.command() +def loginv2(loglevel: constants.LogLevel = typer.Option(config.loglevel)): + """Authenicate with experimental Reflex hosting service.""" + from reflex_cli.v2 import cli as hosting_cli + + hosting_cli.login() + + @cli.command() def logout( loglevel: constants.LogLevel = typer.Option( @@ -399,6 +408,22 @@ def logout( hosting.delete_token_from_config(include_invitation_code=True) +@cli.command() +def logoutv2( + loglevel: constants.LogLevel = typer.Option( + config.loglevel, help="The log level to use." + ), +): + """Log out of access to Reflex hosting service.""" + from reflex_cli.v2.utils import hosting + + console.set_log_level(loglevel) + + hosting.log_out_on_browser() + console.debug("Deleting access token from config locally") + hosting.delete_token_from_config(include_invitation_code=True) + + db_cli = typer.Typer() script_cli = typer.Typer() @@ -599,6 +624,110 @@ def deploy( ) +@cli.command() +def deployv2( + app_name: str = typer.Option( + config.app_name, + "--app-name", + help="The name of the App to deploy under.", + hidden=True, + ), + regions: List[str] = typer.Option( + list(), + "-r", + "--region", + help="The regions to deploy to. For multiple envs, repeat this option, e.g. --region sjc --region iad", + ), + envs: List[str] = typer.Option( + list(), + "--env", + help="The environment variables to set: =. For multiple envs, repeat this option, e.g. --env k1=v2 --env k2=v2.", + ), + vmtype: Optional[str] = typer.Option( + None, + "--vmtype", + help="Vm type id. Run reflex apps vmtypes list to get options.", + ), + hostname: Optional[str] = typer.Option( + None, + "--hostname", + help="The hostname of the frontend.", + hidden=True, + ), + interactive: bool = typer.Option( + True, + help="Whether to list configuration options and ask for confirmation.", + ), + envfile: Optional[str] = typer.Option( + None, + "--envfile", + help="The path to an env file to use. Will override any envs set manually.", + hidden=True, + ), + loglevel: constants.LogLevel = typer.Option( + config.loglevel, help="The log level to use." + ), + project: Optional[str] = typer.Option( + None, + "--project", + help="project to deploy to", + hidden=True, + ), + token: Optional[str] = typer.Option( + None, + "--token", + help="token to use for auth", + hidden=True, + ), +): + """Deploy the app to the Reflex hosting service.""" + from reflex_cli.v2 import cli as hosting_cli + from reflex_cli.v2.utils import dependency + + from reflex.utils import export as export_utils + from reflex.utils import prerequisites + + # Set the log level. + console.set_log_level(loglevel) + + # Only check requirements if interactive. + # There is user interaction for requirements update. + if interactive: + dependency.check_requirements() + + # Check if we are set up. + if prerequisites.needs_reinit(frontend=True): + _init(name=config.app_name, loglevel=loglevel) + prerequisites.check_latest_package_version(constants.ReflexHostingCLI.MODULE_NAME) + + hosting_cli.deploy( + app_name=app_name, + export_fn=lambda zip_dest_dir, + api_url, + deploy_url, + frontend, + backend, + zipping: export_utils.export( + zip_dest_dir=zip_dest_dir, + api_url=api_url, + deploy_url=deploy_url, + frontend=frontend, + backend=backend, + zipping=zipping, + loglevel=loglevel.subprocess_level(), + ), + regions=regions, + envs=envs, + vmtype=vmtype, + envfile=envfile, + hostname=hostname, + interactive=interactive, + loglevel=loglevel.subprocess_level(), + token=token, + project=project, + ) + + cli.add_typer(db_cli, name="db", help="Subcommands for managing the database schema.") cli.add_typer(script_cli, name="script", help="Subcommands running helper scripts.") cli.add_typer( @@ -606,6 +735,11 @@ cli.add_typer( name="deployments", help="Subcommands for managing the Deployments.", ) +cli.add_typer( + hosting_cli, + name="apps", + help="Subcommands for managing the Deployments.", +) cli.add_typer( custom_components_cli, name="component", From 2cb193e8d61ec6f02e0729dfdbc9156874bd6114 Mon Sep 17 00:00:00 2001 From: benedikt-bartscher <31854409+benedikt-bartscher@users.noreply.github.com> Date: Thu, 7 Nov 2024 23:08:37 +0100 Subject: [PATCH 06/17] improve app_src typing (#4324) --- benchmarks/test_benchmark_compile_pages.py | 4 ++-- reflex/testing.py | 4 ++-- tests/integration/test_background_task.py | 2 +- tests/integration/test_call_script.py | 2 +- tests/integration/test_client_storage.py | 2 +- tests/integration/test_component_state.py | 2 +- tests/integration/test_computed_vars.py | 2 +- tests/integration/test_connection_banner.py | 2 +- tests/integration/test_deploy_url.py | 2 +- tests/integration/test_dynamic_components.py | 2 +- tests/integration/test_dynamic_routes.py | 2 +- tests/integration/test_event_actions.py | 2 +- tests/integration/test_event_chain.py | 2 +- tests/integration/test_exception_handlers.py | 2 +- tests/integration/test_form_submit.py | 2 +- tests/integration/test_input.py | 2 +- tests/integration/test_lifespan.py | 2 +- tests/integration/test_login_flow.py | 2 +- tests/integration/test_media.py | 2 +- tests/integration/test_navigation.py | 2 +- tests/integration/test_server_side_event.py | 2 +- tests/integration/test_shared_state.py | 2 +- tests/integration/test_state_inheritance.py | 2 +- tests/integration/test_tailwind.py | 2 +- tests/integration/test_upload.py | 2 +- tests/integration/test_var_operations.py | 2 +- tests/integration/tests_playwright/test_stateless_app.py | 2 +- tests/integration/tests_playwright/test_table.py | 2 +- tests/test_node_version.py | 2 +- tests/units/test_testing.py | 2 +- 30 files changed, 32 insertions(+), 32 deletions(-) diff --git a/benchmarks/test_benchmark_compile_pages.py b/benchmarks/test_benchmark_compile_pages.py index f232eb627..292882b74 100644 --- a/benchmarks/test_benchmark_compile_pages.py +++ b/benchmarks/test_benchmark_compile_pages.py @@ -212,7 +212,7 @@ def app_with_one_page( """ root = tmp_path_factory.mktemp("app1") - yield AppHarness.create(root=root, app_source=AppWithOnePage) # type: ignore + yield AppHarness.create(root=root, app_source=AppWithOnePage) @pytest.fixture(scope="session") @@ -276,7 +276,7 @@ def app_with_thousand_pages( yield AppHarness.create( root=root, - app_source=functools.partial( # type: ignore + app_source=functools.partial( AppWithThousandPages, render_comp=render_multiple_pages, # type: ignore ), diff --git a/reflex/testing.py b/reflex/testing.py index bb7ead2d9..9ddb03504 100644 --- a/reflex/testing.py +++ b/reflex/testing.py @@ -118,7 +118,7 @@ class AppHarness: app_name: str app_source: Optional[ - types.FunctionType | types.ModuleType | str | functools.partial[Any] + Callable[[], None] | types.ModuleType | str | functools.partial[Any] ] app_path: pathlib.Path app_module_path: pathlib.Path @@ -138,7 +138,7 @@ class AppHarness: cls, root: pathlib.Path, app_source: Optional[ - types.FunctionType | types.ModuleType | str | functools.partial[Any] + Callable[[], None] | types.ModuleType | str | functools.partial[Any] ] = None, app_name: Optional[str] = None, ) -> "AppHarness": diff --git a/tests/integration/test_background_task.py b/tests/integration/test_background_task.py index 00cf83ea0..d7fe20824 100644 --- a/tests/integration/test_background_task.py +++ b/tests/integration/test_background_task.py @@ -190,7 +190,7 @@ def background_task( """ with AppHarness.create( root=tmp_path_factory.mktemp("background_task"), - app_source=BackgroundTask, # type: ignore + app_source=BackgroundTask, ) as harness: yield harness diff --git a/tests/integration/test_call_script.py b/tests/integration/test_call_script.py index a949dc451..71200221b 100644 --- a/tests/integration/test_call_script.py +++ b/tests/integration/test_call_script.py @@ -355,7 +355,7 @@ def call_script(tmp_path_factory) -> Generator[AppHarness, None, None]: """ with AppHarness.create( root=tmp_path_factory.mktemp("call_script"), - app_source=CallScript, # type: ignore + app_source=CallScript, ) as harness: yield harness diff --git a/tests/integration/test_client_storage.py b/tests/integration/test_client_storage.py index ae66087e2..e8c95ab71 100644 --- a/tests/integration/test_client_storage.py +++ b/tests/integration/test_client_storage.py @@ -137,7 +137,7 @@ def client_side(tmp_path_factory) -> Generator[AppHarness, None, None]: """ with AppHarness.create( root=tmp_path_factory.mktemp("client_side"), - app_source=ClientSide, # type: ignore + app_source=ClientSide, ) as harness: yield harness diff --git a/tests/integration/test_component_state.py b/tests/integration/test_component_state.py index f4a295d07..97624e7c5 100644 --- a/tests/integration/test_component_state.py +++ b/tests/integration/test_component_state.py @@ -115,7 +115,7 @@ def component_state_app(tmp_path) -> Generator[AppHarness, None, None]: """ with AppHarness.create( root=tmp_path, - app_source=ComponentStateApp, # type: ignore + app_source=ComponentStateApp, ) as harness: yield harness diff --git a/tests/integration/test_computed_vars.py b/tests/integration/test_computed_vars.py index a39cb9e65..a41458173 100644 --- a/tests/integration/test_computed_vars.py +++ b/tests/integration/test_computed_vars.py @@ -125,7 +125,7 @@ def computed_vars( """ with AppHarness.create( root=tmp_path_factory.mktemp("computed_vars"), - app_source=ComputedVars, # type: ignore + app_source=ComputedVars, ) as harness: yield harness diff --git a/tests/integration/test_connection_banner.py b/tests/integration/test_connection_banner.py index 6921444b0..44187c8ba 100644 --- a/tests/integration/test_connection_banner.py +++ b/tests/integration/test_connection_banner.py @@ -52,7 +52,7 @@ def connection_banner(tmp_path) -> Generator[AppHarness, None, None]: """ with AppHarness.create( root=tmp_path, - app_source=ConnectionBanner, # type: ignore + app_source=ConnectionBanner, ) as harness: yield harness diff --git a/tests/integration/test_deploy_url.py b/tests/integration/test_deploy_url.py index f93e9db27..5c840d24d 100644 --- a/tests/integration/test_deploy_url.py +++ b/tests/integration/test_deploy_url.py @@ -44,7 +44,7 @@ def deploy_url_sample( """ with AppHarness.create( root=tmp_path_factory.mktemp("deploy_url_sample"), - app_source=DeployUrlSample, # type: ignore + app_source=DeployUrlSample, ) as harness: yield harness diff --git a/tests/integration/test_dynamic_components.py b/tests/integration/test_dynamic_components.py index aeebd10e9..6a68aa1a1 100644 --- a/tests/integration/test_dynamic_components.py +++ b/tests/integration/test_dynamic_components.py @@ -85,7 +85,7 @@ def dynamic_components(tmp_path_factory) -> Generator[AppHarness, None, None]: """ with AppHarness.create( root=tmp_path_factory.mktemp("dynamic_components"), - app_source=DynamicComponents, # type: ignore + app_source=DynamicComponents, ) as harness: assert harness.app_instance is not None, "app is not running" yield harness diff --git a/tests/integration/test_dynamic_routes.py b/tests/integration/test_dynamic_routes.py index ffb4b1c3c..eed066696 100644 --- a/tests/integration/test_dynamic_routes.py +++ b/tests/integration/test_dynamic_routes.py @@ -155,7 +155,7 @@ def dynamic_route( with app_harness_env.create( root=tmp_path_factory.mktemp("dynamic_route"), app_name=f"dynamicroute_{app_harness_env.__name__.lower()}", - app_source=DynamicRoute, # type: ignore + app_source=DynamicRoute, ) as harness: yield harness diff --git a/tests/integration/test_event_actions.py b/tests/integration/test_event_actions.py index 58e26bf09..15f3c9877 100644 --- a/tests/integration/test_event_actions.py +++ b/tests/integration/test_event_actions.py @@ -172,7 +172,7 @@ def event_action(tmp_path_factory) -> Generator[AppHarness, None, None]: """ with AppHarness.create( root=tmp_path_factory.mktemp("event_action"), - app_source=TestEventAction, # type: ignore + app_source=TestEventAction, ) as harness: yield harness diff --git a/tests/integration/test_event_chain.py b/tests/integration/test_event_chain.py index ea2d2191c..c4121ee94 100644 --- a/tests/integration/test_event_chain.py +++ b/tests/integration/test_event_chain.py @@ -277,7 +277,7 @@ def event_chain(tmp_path_factory) -> Generator[AppHarness, None, None]: """ with AppHarness.create( root=tmp_path_factory.mktemp("event_chain"), - app_source=EventChain, # type: ignore + app_source=EventChain, ) as harness: yield harness diff --git a/tests/integration/test_exception_handlers.py b/tests/integration/test_exception_handlers.py index 00683c48b..e88b462ff 100644 --- a/tests/integration/test_exception_handlers.py +++ b/tests/integration/test_exception_handlers.py @@ -70,7 +70,7 @@ def test_app( with app_harness_env.create( root=tmp_path_factory.mktemp("test_app"), app_name=f"testapp_{app_harness_env.__name__.lower()}", - app_source=TestApp, # type: ignore + app_source=TestApp, ) as harness: yield harness diff --git a/tests/integration/test_form_submit.py b/tests/integration/test_form_submit.py index 3bfcf6e8c..ea8750595 100644 --- a/tests/integration/test_form_submit.py +++ b/tests/integration/test_form_submit.py @@ -159,7 +159,7 @@ def form_submit(request, tmp_path_factory) -> Generator[AppHarness, None, None]: param_id = request._pyfuncitem.callspec.id.replace("-", "_") with AppHarness.create( root=tmp_path_factory.mktemp("form_submit"), - app_source=request.param, # type: ignore + app_source=request.param, app_name=request.param.func.__name__ + f"_{param_id}", ) as harness: assert harness.app_instance is not None, "app is not running" diff --git a/tests/integration/test_input.py b/tests/integration/test_input.py index 4679104a4..c718749aa 100644 --- a/tests/integration/test_input.py +++ b/tests/integration/test_input.py @@ -63,7 +63,7 @@ def fully_controlled_input(tmp_path) -> Generator[AppHarness, None, None]: """ with AppHarness.create( root=tmp_path, - app_source=FullyControlledInput, # type: ignore + app_source=FullyControlledInput, ) as harness: yield harness diff --git a/tests/integration/test_lifespan.py b/tests/integration/test_lifespan.py index 22c399c07..cb6c640ab 100644 --- a/tests/integration/test_lifespan.py +++ b/tests/integration/test_lifespan.py @@ -80,7 +80,7 @@ def lifespan_app(tmp_path) -> Generator[AppHarness, None, None]: """ with AppHarness.create( root=tmp_path, - app_source=LifespanApp, # type: ignore + app_source=LifespanApp, ) as harness: yield harness diff --git a/tests/integration/test_login_flow.py b/tests/integration/test_login_flow.py index ecaade9cf..1938672a3 100644 --- a/tests/integration/test_login_flow.py +++ b/tests/integration/test_login_flow.py @@ -62,7 +62,7 @@ def login_sample(tmp_path_factory) -> Generator[AppHarness, None, None]: """ with AppHarness.create( root=tmp_path_factory.mktemp("login_sample"), - app_source=LoginSample, # type: ignore + app_source=LoginSample, ) as harness: yield harness diff --git a/tests/integration/test_media.py b/tests/integration/test_media.py index c10f7102b..10af26591 100644 --- a/tests/integration/test_media.py +++ b/tests/integration/test_media.py @@ -84,7 +84,7 @@ def media_app(tmp_path) -> Generator[AppHarness, None, None]: """ with AppHarness.create( root=tmp_path, - app_source=MediaApp, # type: ignore + app_source=MediaApp, ) as harness: yield harness diff --git a/tests/integration/test_navigation.py b/tests/integration/test_navigation.py index b4505ed1c..4e81e4155 100644 --- a/tests/integration/test_navigation.py +++ b/tests/integration/test_navigation.py @@ -52,7 +52,7 @@ def navigation_app(tmp_path) -> Generator[AppHarness, None, None]: """ with AppHarness.create( root=tmp_path, - app_source=NavigationApp, # type: ignore + app_source=NavigationApp, ) as harness: yield harness diff --git a/tests/integration/test_server_side_event.py b/tests/integration/test_server_side_event.py index 7fd592d10..f04cc3beb 100644 --- a/tests/integration/test_server_side_event.py +++ b/tests/integration/test_server_side_event.py @@ -93,7 +93,7 @@ def server_side_event(tmp_path_factory) -> Generator[AppHarness, None, None]: """ with AppHarness.create( root=tmp_path_factory.mktemp("server_side_event"), - app_source=ServerSideEvent, # type: ignore + app_source=ServerSideEvent, ) as harness: yield harness diff --git a/tests/integration/test_shared_state.py b/tests/integration/test_shared_state.py index 6f59c5142..410669381 100644 --- a/tests/integration/test_shared_state.py +++ b/tests/integration/test_shared_state.py @@ -39,7 +39,7 @@ def shared_state( """ with AppHarness.create( root=tmp_path_factory.mktemp("shared_state"), - app_source=SharedStateApp, # type: ignore + app_source=SharedStateApp, ) as harness: yield harness diff --git a/tests/integration/test_state_inheritance.py b/tests/integration/test_state_inheritance.py index a9f55d9a9..81512a67a 100644 --- a/tests/integration/test_state_inheritance.py +++ b/tests/integration/test_state_inheritance.py @@ -217,7 +217,7 @@ def state_inheritance( """ with AppHarness.create( root=tmp_path_factory.mktemp("state_inheritance"), - app_source=StateInheritance, # type: ignore + app_source=StateInheritance, ) as harness: yield harness diff --git a/tests/integration/test_tailwind.py b/tests/integration/test_tailwind.py index bda664a1c..eb0fde759 100644 --- a/tests/integration/test_tailwind.py +++ b/tests/integration/test_tailwind.py @@ -78,7 +78,7 @@ def tailwind_app(tmp_path, tailwind_disabled) -> Generator[AppHarness, None, Non """ with AppHarness.create( root=tmp_path, - app_source=functools.partial(TailwindApp, tailwind_disabled=tailwind_disabled), # type: ignore + app_source=functools.partial(TailwindApp, tailwind_disabled=tailwind_disabled), app_name="tailwind_disabled_app" if tailwind_disabled else "tailwind_app", ) as harness: yield harness diff --git a/tests/integration/test_upload.py b/tests/integration/test_upload.py index 602905b3e..fe8ebb4d7 100644 --- a/tests/integration/test_upload.py +++ b/tests/integration/test_upload.py @@ -133,7 +133,7 @@ def upload_file(tmp_path_factory) -> Generator[AppHarness, None, None]: """ with AppHarness.create( root=tmp_path_factory.mktemp("upload_file"), - app_source=UploadFile, # type: ignore + app_source=UploadFile, ) as harness: yield harness diff --git a/tests/integration/test_var_operations.py b/tests/integration/test_var_operations.py index cae56e1a8..7a7c8328d 100644 --- a/tests/integration/test_var_operations.py +++ b/tests/integration/test_var_operations.py @@ -613,7 +613,7 @@ def var_operations(tmp_path_factory) -> Generator[AppHarness, None, None]: """ with AppHarness.create( root=tmp_path_factory.mktemp("var_operations"), - app_source=VarOperations, # type: ignore + app_source=VarOperations, ) as harness: assert harness.app_instance is not None, "app is not running" yield harness diff --git a/tests/integration/tests_playwright/test_stateless_app.py b/tests/integration/tests_playwright/test_stateless_app.py index 129b69dc7..0c0b2959b 100644 --- a/tests/integration/tests_playwright/test_stateless_app.py +++ b/tests/integration/tests_playwright/test_stateless_app.py @@ -33,7 +33,7 @@ def stateless_app(tmp_path_factory) -> Generator[AppHarness, None, None]: """ with AppHarness.create( root=tmp_path_factory.mktemp("stateless_app"), - app_source=StatelessApp, # type: ignore + app_source=StatelessApp, ) as harness: yield harness diff --git a/tests/integration/tests_playwright/test_table.py b/tests/integration/tests_playwright/test_table.py index 917247b89..0a39b197e 100644 --- a/tests/integration/tests_playwright/test_table.py +++ b/tests/integration/tests_playwright/test_table.py @@ -68,7 +68,7 @@ def table_app(tmp_path_factory) -> Generator[AppHarness, None, None]: """ with AppHarness.create( root=tmp_path_factory.mktemp("table"), - app_source=Table, # type: ignore + app_source=Table, ) as harness: assert harness.app_instance is not None, "app is not running" yield harness diff --git a/tests/test_node_version.py b/tests/test_node_version.py index 9555eb524..defba3d20 100644 --- a/tests/test_node_version.py +++ b/tests/test_node_version.py @@ -43,7 +43,7 @@ def node_version_app(tmp_path) -> Generator[AppHarness, Any, None]: """ with AppHarness.create( root=tmp_path, - app_source=TestNodeVersionApp, # type: ignore + app_source=TestNodeVersionApp, ) as harness: yield harness diff --git a/tests/units/test_testing.py b/tests/units/test_testing.py index b01709202..83a03ad83 100644 --- a/tests/units/test_testing.py +++ b/tests/units/test_testing.py @@ -29,7 +29,7 @@ def test_app_harness(tmp_path): with AppHarness.create( root=tmp_path, - app_source=BasicApp, # type: ignore + app_source=BasicApp, ) as harness: assert harness.app_instance is not None assert harness.backend is not None From 7843a517bc3de18f54e869f6b951611245d04bd0 Mon Sep 17 00:00:00 2001 From: Khaleel Al-Adhami Date: Thu, 7 Nov 2024 14:18:13 -0800 Subject: [PATCH 07/17] change custom attr to accept any (#4323) --- reflex/components/base/app_wrap.pyi | 2 +- reflex/components/base/body.pyi | 2 +- reflex/components/base/document.pyi | 10 ++-- reflex/components/base/error_boundary.pyi | 2 +- reflex/components/base/fragment.pyi | 2 +- reflex/components/base/head.pyi | 4 +- reflex/components/base/link.pyi | 4 +- reflex/components/base/meta.pyi | 8 +-- reflex/components/base/script.pyi | 2 +- reflex/components/component.py | 2 +- reflex/components/core/banner.pyi | 10 ++-- .../components/core/client_side_routing.pyi | 4 +- reflex/components/core/clipboard.pyi | 2 +- reflex/components/core/debounce.pyi | 2 +- reflex/components/core/html.pyi | 2 +- reflex/components/core/upload.pyi | 8 +-- reflex/components/datadisplay/code.pyi | 4 +- reflex/components/datadisplay/dataeditor.pyi | 2 +- .../datadisplay/shiki_code_block.pyi | 6 +- reflex/components/el/element.pyi | 2 +- reflex/components/el/elements/base.pyi | 2 +- reflex/components/el/elements/forms.pyi | 28 +++++----- reflex/components/el/elements/inline.pyi | 56 +++++++++---------- reflex/components/el/elements/media.pyi | 50 ++++++++--------- reflex/components/el/elements/metadata.pyi | 12 ++-- reflex/components/el/elements/other.pyi | 14 ++--- reflex/components/el/elements/scripts.pyi | 6 +- reflex/components/el/elements/sectioning.pyi | 30 +++++----- reflex/components/el/elements/tables.pyi | 20 +++---- reflex/components/el/elements/typography.pyi | 30 +++++----- reflex/components/gridjs/datatable.pyi | 4 +- reflex/components/lucide/icon.pyi | 4 +- reflex/components/markdown/markdown.pyi | 2 +- reflex/components/moment/moment.pyi | 2 +- reflex/components/next/base.pyi | 2 +- reflex/components/next/image.pyi | 2 +- reflex/components/next/link.pyi | 2 +- reflex/components/next/video.pyi | 2 +- reflex/components/plotly/plotly.pyi | 2 +- .../components/radix/primitives/accordion.pyi | 14 ++--- reflex/components/radix/primitives/base.pyi | 4 +- reflex/components/radix/primitives/drawer.pyi | 22 ++++---- reflex/components/radix/primitives/form.pyi | 20 +++---- .../components/radix/primitives/progress.pyi | 10 ++-- reflex/components/radix/primitives/slider.pyi | 10 ++-- reflex/components/radix/themes/base.pyi | 14 ++--- reflex/components/radix/themes/color_mode.pyi | 6 +- .../radix/themes/components/alert_dialog.pyi | 14 ++--- .../radix/themes/components/aspect_ratio.pyi | 2 +- .../radix/themes/components/avatar.pyi | 2 +- .../radix/themes/components/badge.pyi | 2 +- .../radix/themes/components/button.pyi | 2 +- .../radix/themes/components/callout.pyi | 10 ++-- .../radix/themes/components/card.pyi | 2 +- .../radix/themes/components/checkbox.pyi | 6 +- .../themes/components/checkbox_cards.pyi | 4 +- .../themes/components/checkbox_group.pyi | 4 +- .../radix/themes/components/context_menu.pyi | 16 +++--- .../radix/themes/components/data_list.pyi | 8 +-- .../radix/themes/components/dialog.pyi | 14 ++--- .../radix/themes/components/dropdown_menu.pyi | 16 +++--- .../radix/themes/components/hover_card.pyi | 8 +-- .../radix/themes/components/icon_button.pyi | 2 +- .../radix/themes/components/inset.pyi | 2 +- .../radix/themes/components/popover.pyi | 8 +-- .../radix/themes/components/progress.pyi | 2 +- .../radix/themes/components/radio.pyi | 2 +- .../radix/themes/components/radio_cards.pyi | 4 +- .../radix/themes/components/radio_group.pyi | 8 +-- .../radix/themes/components/scroll_area.pyi | 2 +- .../themes/components/segmented_control.pyi | 4 +- .../radix/themes/components/select.pyi | 18 +++--- .../radix/themes/components/separator.pyi | 2 +- .../radix/themes/components/skeleton.pyi | 2 +- .../radix/themes/components/slider.pyi | 2 +- .../radix/themes/components/spinner.pyi | 2 +- .../radix/themes/components/switch.pyi | 2 +- .../radix/themes/components/table.pyi | 14 ++--- .../radix/themes/components/tabs.pyi | 10 ++-- .../radix/themes/components/text_area.pyi | 2 +- .../radix/themes/components/text_field.pyi | 6 +- .../radix/themes/components/tooltip.pyi | 2 +- .../components/radix/themes/layout/base.pyi | 2 +- reflex/components/radix/themes/layout/box.pyi | 2 +- .../components/radix/themes/layout/center.pyi | 2 +- .../radix/themes/layout/container.pyi | 2 +- .../components/radix/themes/layout/flex.pyi | 2 +- .../components/radix/themes/layout/grid.pyi | 2 +- .../components/radix/themes/layout/list.pyi | 10 ++-- .../radix/themes/layout/section.pyi | 2 +- .../components/radix/themes/layout/spacer.pyi | 2 +- .../components/radix/themes/layout/stack.pyi | 6 +- .../radix/themes/typography/blockquote.pyi | 2 +- .../radix/themes/typography/code.pyi | 2 +- .../radix/themes/typography/heading.pyi | 2 +- .../radix/themes/typography/link.pyi | 2 +- .../radix/themes/typography/text.pyi | 14 ++--- reflex/components/react_player/audio.pyi | 2 +- .../components/react_player/react_player.pyi | 2 +- reflex/components/react_player/video.pyi | 2 +- reflex/components/recharts/cartesian.pyi | 38 ++++++------- reflex/components/recharts/charts.pyi | 24 ++++---- reflex/components/recharts/general.pyi | 10 ++-- reflex/components/recharts/polar.pyi | 12 ++-- reflex/components/recharts/recharts.pyi | 4 +- reflex/components/sonner/toast.pyi | 2 +- reflex/components/suneditor/editor.pyi | 2 +- reflex/experimental/layout.pyi | 10 ++-- 108 files changed, 409 insertions(+), 409 deletions(-) diff --git a/reflex/components/base/app_wrap.pyi b/reflex/components/base/app_wrap.pyi index 82edf98d3..962e70c76 100644 --- a/reflex/components/base/app_wrap.pyi +++ b/reflex/components/base/app_wrap.pyi @@ -21,7 +21,7 @@ class AppWrap(Fragment): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/base/body.pyi b/reflex/components/base/body.pyi index 6d28236fd..8a20a6c06 100644 --- a/reflex/components/base/body.pyi +++ b/reflex/components/base/body.pyi @@ -21,7 +21,7 @@ class Body(Component): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/base/document.pyi b/reflex/components/base/document.pyi index 97dacedf8..5b5e1a7f4 100644 --- a/reflex/components/base/document.pyi +++ b/reflex/components/base/document.pyi @@ -21,7 +21,7 @@ class NextDocumentLib(Component): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -68,7 +68,7 @@ class Html(NextDocumentLib): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -114,7 +114,7 @@ class DocumentHead(NextDocumentLib): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -160,7 +160,7 @@ class Main(NextDocumentLib): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -206,7 +206,7 @@ class NextScript(NextDocumentLib): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/base/error_boundary.pyi b/reflex/components/base/error_boundary.pyi index 92221c97d..dfe34fc9e 100644 --- a/reflex/components/base/error_boundary.pyi +++ b/reflex/components/base/error_boundary.pyi @@ -27,7 +27,7 @@ class ErrorBoundary(Component): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/base/fragment.pyi b/reflex/components/base/fragment.pyi index 2dabb0ff3..33030bc01 100644 --- a/reflex/components/base/fragment.pyi +++ b/reflex/components/base/fragment.pyi @@ -21,7 +21,7 @@ class Fragment(Component): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/base/head.pyi b/reflex/components/base/head.pyi index 5019aa2be..b01778094 100644 --- a/reflex/components/base/head.pyi +++ b/reflex/components/base/head.pyi @@ -21,7 +21,7 @@ class NextHeadLib(Component): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -67,7 +67,7 @@ class Head(NextHeadLib, MemoizationLeaf): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/base/link.pyi b/reflex/components/base/link.pyi index 02f3df43e..b48fae3a5 100644 --- a/reflex/components/base/link.pyi +++ b/reflex/components/base/link.pyi @@ -23,7 +23,7 @@ class RawLink(Component): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -78,7 +78,7 @@ class ScriptTag(Component): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/base/meta.pyi b/reflex/components/base/meta.pyi index 3053493ca..b388b4794 100644 --- a/reflex/components/base/meta.pyi +++ b/reflex/components/base/meta.pyi @@ -22,7 +22,7 @@ class Title(Component): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -73,7 +73,7 @@ class Meta(Component): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -129,7 +129,7 @@ class Description(Meta): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -185,7 +185,7 @@ class Image(Meta): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/base/script.pyi b/reflex/components/base/script.pyi index 9e8d66aea..1633fdb70 100644 --- a/reflex/components/base/script.pyi +++ b/reflex/components/base/script.pyi @@ -28,7 +28,7 @@ class Script(Component): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/component.py b/reflex/components/component.py index 2b934277b..5fb9eed6f 100644 --- a/reflex/components/component.py +++ b/reflex/components/component.py @@ -229,7 +229,7 @@ class Component(BaseComponent, ABC): _rename_props: Dict[str, str] = {} # custom attribute - custom_attrs: Dict[str, Union[Var, str]] = {} + custom_attrs: Dict[str, Union[Var, Any]] = {} # When to memoize this component and its children. _memoization_mode: MemoizationMode = MemoizationMode() diff --git a/reflex/components/core/banner.pyi b/reflex/components/core/banner.pyi index c6b5cd09b..3296b84ee 100644 --- a/reflex/components/core/banner.pyi +++ b/reflex/components/core/banner.pyi @@ -88,7 +88,7 @@ class ConnectionToaster(Toaster): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -148,7 +148,7 @@ class ConnectionBanner(Component): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -187,7 +187,7 @@ class ConnectionModal(Component): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -227,7 +227,7 @@ class WifiOffPulse(Icon): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -300,7 +300,7 @@ class ConnectionPulser(Div): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/core/client_side_routing.pyi b/reflex/components/core/client_side_routing.pyi index 90e629ab9..bb853e2c7 100644 --- a/reflex/components/core/client_side_routing.pyi +++ b/reflex/components/core/client_side_routing.pyi @@ -25,7 +25,7 @@ class ClientSideRouting(Component): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -74,7 +74,7 @@ class Default404Page(Component): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/core/clipboard.pyi b/reflex/components/core/clipboard.pyi index fc49cf64b..69e0e866d 100644 --- a/reflex/components/core/clipboard.pyi +++ b/reflex/components/core/clipboard.pyi @@ -26,7 +26,7 @@ class Clipboard(Fragment): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/core/debounce.pyi b/reflex/components/core/debounce.pyi index e5d89cd90..9e61af6e3 100644 --- a/reflex/components/core/debounce.pyi +++ b/reflex/components/core/debounce.pyi @@ -30,7 +30,7 @@ class DebounceInput(Component): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_change: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/core/html.pyi b/reflex/components/core/html.pyi index f89d665c6..ffa7f88bb 100644 --- a/reflex/components/core/html.pyi +++ b/reflex/components/core/html.pyi @@ -48,7 +48,7 @@ class Html(Div): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/core/upload.pyi b/reflex/components/core/upload.pyi index 3c7b5b160..e38fad256 100644 --- a/reflex/components/core/upload.pyi +++ b/reflex/components/core/upload.pyi @@ -49,7 +49,7 @@ class UploadFilesProvider(Component): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -106,7 +106,7 @@ class Upload(MemoizationLeaf): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -174,7 +174,7 @@ class StyledUpload(Upload): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -242,7 +242,7 @@ class UploadNamespace(ComponentNamespace): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/datadisplay/code.pyi b/reflex/components/datadisplay/code.pyi index eadcb524f..765ae47f3 100644 --- a/reflex/components/datadisplay/code.pyi +++ b/reflex/components/datadisplay/code.pyi @@ -938,7 +938,7 @@ class CodeBlock(Component): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -1573,7 +1573,7 @@ class CodeblockNamespace(ComponentNamespace): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/datadisplay/dataeditor.pyi b/reflex/components/datadisplay/dataeditor.pyi index dbf79ef7b..aa4b3b2e8 100644 --- a/reflex/components/datadisplay/dataeditor.pyi +++ b/reflex/components/datadisplay/dataeditor.pyi @@ -182,7 +182,7 @@ class DataEditor(NoSSRComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_cell_activated: Optional[ Union[EventType[[], BASE_STATE], EventType[[tuple[int, int]], BASE_STATE]] diff --git a/reflex/components/datadisplay/shiki_code_block.pyi b/reflex/components/datadisplay/shiki_code_block.pyi index 543030daa..2b8b0d385 100644 --- a/reflex/components/datadisplay/shiki_code_block.pyi +++ b/reflex/components/datadisplay/shiki_code_block.pyi @@ -926,7 +926,7 @@ class ShikiCodeBlock(Component): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -1553,7 +1553,7 @@ class ShikiHighLevelCodeBlock(ShikiCodeBlock): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -2183,7 +2183,7 @@ class CodeblockNamespace(ComponentNamespace): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/el/element.pyi b/reflex/components/el/element.pyi index 18b4bc2ba..de5dee956 100644 --- a/reflex/components/el/element.pyi +++ b/reflex/components/el/element.pyi @@ -21,7 +21,7 @@ class Element(Component): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/el/elements/base.pyi b/reflex/components/el/elements/base.pyi index 4994e77c8..4d1d2c5c4 100644 --- a/reflex/components/el/elements/base.pyi +++ b/reflex/components/el/elements/base.pyi @@ -45,7 +45,7 @@ class BaseHTML(Element): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/el/elements/forms.pyi b/reflex/components/el/elements/forms.pyi index fca2ffaa1..f494d8076 100644 --- a/reflex/components/el/elements/forms.pyi +++ b/reflex/components/el/elements/forms.pyi @@ -70,7 +70,7 @@ class Button(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -167,7 +167,7 @@ class Datalist(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -232,7 +232,7 @@ class Fieldset(Element): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -323,7 +323,7 @@ class Form(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -473,7 +473,7 @@ class Input(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[ Union[EventType[[], BASE_STATE], EventType[[str], BASE_STATE]] ] = None, @@ -620,7 +620,7 @@ class Label(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -708,7 +708,7 @@ class Legend(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -801,7 +801,7 @@ class Meter(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -896,7 +896,7 @@ class Optgroup(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -988,7 +988,7 @@ class Option(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -1081,7 +1081,7 @@ class Output(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -1173,7 +1173,7 @@ class Progress(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -1272,7 +1272,7 @@ class Select(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_change: Optional[ Union[EventType[[], BASE_STATE], EventType[[str], BASE_STATE]] @@ -1392,7 +1392,7 @@ class Textarea(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[ Union[EventType[[], BASE_STATE], EventType[[str], BASE_STATE]] ] = None, diff --git a/reflex/components/el/elements/inline.pyi b/reflex/components/el/elements/inline.pyi index f2cbcdb06..1b4af4fc8 100644 --- a/reflex/components/el/elements/inline.pyi +++ b/reflex/components/el/elements/inline.pyi @@ -57,7 +57,7 @@ class A(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -152,7 +152,7 @@ class Abbr(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -238,7 +238,7 @@ class B(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -324,7 +324,7 @@ class Bdi(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -410,7 +410,7 @@ class Bdo(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -496,7 +496,7 @@ class Br(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -582,7 +582,7 @@ class Cite(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -668,7 +668,7 @@ class Code(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -755,7 +755,7 @@ class Data(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -842,7 +842,7 @@ class Dfn(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -928,7 +928,7 @@ class Em(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -1014,7 +1014,7 @@ class I(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -1100,7 +1100,7 @@ class Kbd(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -1186,7 +1186,7 @@ class Mark(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -1273,7 +1273,7 @@ class Q(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -1360,7 +1360,7 @@ class Rp(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -1446,7 +1446,7 @@ class Rt(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -1532,7 +1532,7 @@ class Ruby(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -1618,7 +1618,7 @@ class S(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -1704,7 +1704,7 @@ class Samp(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -1790,7 +1790,7 @@ class Small(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -1876,7 +1876,7 @@ class Span(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -1962,7 +1962,7 @@ class Strong(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -2048,7 +2048,7 @@ class Sub(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -2134,7 +2134,7 @@ class Sup(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -2221,7 +2221,7 @@ class Time(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -2308,7 +2308,7 @@ class U(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -2394,7 +2394,7 @@ class Wbr(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/el/elements/media.pyi b/reflex/components/el/elements/media.pyi index f9bae4f56..edaf1228e 100644 --- a/reflex/components/el/elements/media.pyi +++ b/reflex/components/el/elements/media.pyi @@ -61,7 +61,7 @@ class Area(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -168,7 +168,7 @@ class Audio(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -280,7 +280,7 @@ class Img(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -380,7 +380,7 @@ class Map(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -472,7 +472,7 @@ class Track(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -577,7 +577,7 @@ class Video(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -675,7 +675,7 @@ class Embed(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -774,7 +774,7 @@ class Iframe(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -874,7 +874,7 @@ class Object(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -965,7 +965,7 @@ class Picture(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -1051,7 +1051,7 @@ class Portal(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -1142,7 +1142,7 @@ class Source(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -1236,7 +1236,7 @@ class Svg(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -1332,7 +1332,7 @@ class Text(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -1430,7 +1430,7 @@ class Line(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -1525,7 +1525,7 @@ class Circle(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -1620,7 +1620,7 @@ class Ellipse(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -1718,7 +1718,7 @@ class Rect(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -1813,7 +1813,7 @@ class Polygon(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -1901,7 +1901,7 @@ class Defs(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -1994,7 +1994,7 @@ class LinearGradient(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -2096,7 +2096,7 @@ class RadialGradient(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -2198,7 +2198,7 @@ class Stop(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -2288,7 +2288,7 @@ class Path(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -2388,7 +2388,7 @@ class SVG(ComponentNamespace): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/el/elements/metadata.pyi b/reflex/components/el/elements/metadata.pyi index ba934b767..5af92e2b2 100644 --- a/reflex/components/el/elements/metadata.pyi +++ b/reflex/components/el/elements/metadata.pyi @@ -49,7 +49,7 @@ class Base(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -135,7 +135,7 @@ class Head(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -234,7 +234,7 @@ class Link(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -333,7 +333,7 @@ class Meta(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -399,7 +399,7 @@ class Title(Element): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -446,7 +446,7 @@ class StyleEl(Element): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/el/elements/other.pyi b/reflex/components/el/elements/other.pyi index 6f5ca69e0..3d65af647 100644 --- a/reflex/components/el/elements/other.pyi +++ b/reflex/components/el/elements/other.pyi @@ -47,7 +47,7 @@ class Details(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -135,7 +135,7 @@ class Dialog(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -222,7 +222,7 @@ class Summary(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -308,7 +308,7 @@ class Slot(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -394,7 +394,7 @@ class Template(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -480,7 +480,7 @@ class Math(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -567,7 +567,7 @@ class Html(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/el/elements/scripts.pyi b/reflex/components/el/elements/scripts.pyi index 56b6aff23..6f03c20cb 100644 --- a/reflex/components/el/elements/scripts.pyi +++ b/reflex/components/el/elements/scripts.pyi @@ -46,7 +46,7 @@ class Canvas(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -132,7 +132,7 @@ class Noscript(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -231,7 +231,7 @@ class Script(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/el/elements/sectioning.pyi b/reflex/components/el/elements/sectioning.pyi index 7a468dc58..e34d53ee2 100644 --- a/reflex/components/el/elements/sectioning.pyi +++ b/reflex/components/el/elements/sectioning.pyi @@ -46,7 +46,7 @@ class Body(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -132,7 +132,7 @@ class Address(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -218,7 +218,7 @@ class Article(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -304,7 +304,7 @@ class Aside(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -390,7 +390,7 @@ class Footer(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -476,7 +476,7 @@ class Header(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -562,7 +562,7 @@ class H1(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -648,7 +648,7 @@ class H2(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -734,7 +734,7 @@ class H3(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -820,7 +820,7 @@ class H4(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -906,7 +906,7 @@ class H5(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -992,7 +992,7 @@ class H6(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -1078,7 +1078,7 @@ class Main(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -1164,7 +1164,7 @@ class Nav(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -1250,7 +1250,7 @@ class Section(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/el/elements/tables.pyi b/reflex/components/el/elements/tables.pyi index 116417f3f..b0495009d 100644 --- a/reflex/components/el/elements/tables.pyi +++ b/reflex/components/el/elements/tables.pyi @@ -47,7 +47,7 @@ class Caption(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -136,7 +136,7 @@ class Col(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -226,7 +226,7 @@ class Colgroup(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -316,7 +316,7 @@ class Table(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -405,7 +405,7 @@ class Tbody(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -496,7 +496,7 @@ class Td(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = 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 +587,7 @@ class Tfoot(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -679,7 +679,7 @@ class Th(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -771,7 +771,7 @@ class Thead(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -859,7 +859,7 @@ class Tr(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/el/elements/typography.pyi b/reflex/components/el/elements/typography.pyi index 86a10cd37..b28af1c40 100644 --- a/reflex/components/el/elements/typography.pyi +++ b/reflex/components/el/elements/typography.pyi @@ -47,7 +47,7 @@ class Blockquote(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -134,7 +134,7 @@ class Dd(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -220,7 +220,7 @@ class Div(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -306,7 +306,7 @@ class Dl(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -392,7 +392,7 @@ class Dt(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -478,7 +478,7 @@ class Figcaption(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -565,7 +565,7 @@ class Hr(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -652,7 +652,7 @@ class Li(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -739,7 +739,7 @@ class Menu(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -829,7 +829,7 @@ class Ol(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -918,7 +918,7 @@ class P(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -1004,7 +1004,7 @@ class Pre(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -1090,7 +1090,7 @@ class Ul(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -1178,7 +1178,7 @@ class Ins(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -1268,7 +1268,7 @@ class Del(BaseHTML): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/gridjs/datatable.pyi b/reflex/components/gridjs/datatable.pyi index 0e4b3ad17..f3f732db3 100644 --- a/reflex/components/gridjs/datatable.pyi +++ b/reflex/components/gridjs/datatable.pyi @@ -22,7 +22,7 @@ class Gridjs(Component): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -74,7 +74,7 @@ class DataTable(Gridjs): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/lucide/icon.pyi b/reflex/components/lucide/icon.pyi index 0ee3b2c03..7f59edec5 100644 --- a/reflex/components/lucide/icon.pyi +++ b/reflex/components/lucide/icon.pyi @@ -21,7 +21,7 @@ class LucideIconComponent(Component): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -68,7 +68,7 @@ class Icon(LucideIconComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/markdown/markdown.pyi b/reflex/components/markdown/markdown.pyi index 25d6d4c00..9878e6181 100644 --- a/reflex/components/markdown/markdown.pyi +++ b/reflex/components/markdown/markdown.pyi @@ -41,7 +41,7 @@ class Markdown(Component): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/moment/moment.pyi b/reflex/components/moment/moment.pyi index 641435bde..57fbb3d0a 100644 --- a/reflex/components/moment/moment.pyi +++ b/reflex/components/moment/moment.pyi @@ -57,7 +57,7 @@ class Moment(NoSSRComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_change: Optional[ Union[EventType[[], BASE_STATE], EventType[[str], BASE_STATE]] diff --git a/reflex/components/next/base.pyi b/reflex/components/next/base.pyi index 49e9cc540..4a82d7bef 100644 --- a/reflex/components/next/base.pyi +++ b/reflex/components/next/base.pyi @@ -23,7 +23,7 @@ class NextComponent(Component): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/next/image.pyi b/reflex/components/next/image.pyi index df8fdaedb..0c1bf01f2 100644 --- a/reflex/components/next/image.pyi +++ b/reflex/components/next/image.pyi @@ -36,7 +36,7 @@ class Image(NextComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/next/link.pyi b/reflex/components/next/link.pyi index 510db0292..fdccc9ee6 100644 --- a/reflex/components/next/link.pyi +++ b/reflex/components/next/link.pyi @@ -23,7 +23,7 @@ class NextLink(Component): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/next/video.pyi b/reflex/components/next/video.pyi index c6242b462..8f31748f7 100644 --- a/reflex/components/next/video.pyi +++ b/reflex/components/next/video.pyi @@ -25,7 +25,7 @@ class Video(NextComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/plotly/plotly.pyi b/reflex/components/plotly/plotly.pyi index c9847b67e..2d606b8a2 100644 --- a/reflex/components/plotly/plotly.pyi +++ b/reflex/components/plotly/plotly.pyi @@ -64,7 +64,7 @@ class Plotly(NoSSRComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_after_plot: Optional[EventType[[], BASE_STATE]] = None, on_animated: Optional[EventType[[], BASE_STATE]] = None, on_animating_frame: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/primitives/accordion.pyi b/reflex/components/radix/primitives/accordion.pyi index 4f4a9243f..03208f496 100644 --- a/reflex/components/radix/primitives/accordion.pyi +++ b/reflex/components/radix/primitives/accordion.pyi @@ -100,7 +100,7 @@ class AccordionComponent(RadixPrimitiveComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -246,7 +246,7 @@ class AccordionRoot(AccordionComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -383,7 +383,7 @@ class AccordionItem(AccordionComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -507,7 +507,7 @@ class AccordionHeader(AccordionComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -627,7 +627,7 @@ class AccordionTrigger(AccordionComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -679,7 +679,7 @@ class AccordionIcon(Icon): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -796,7 +796,7 @@ class AccordionContent(AccordionComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/primitives/base.pyi b/reflex/components/radix/primitives/base.pyi index 7b729c96f..42847f160 100644 --- a/reflex/components/radix/primitives/base.pyi +++ b/reflex/components/radix/primitives/base.pyi @@ -22,7 +22,7 @@ class RadixPrimitiveComponent(Component): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -70,7 +70,7 @@ class RadixPrimitiveComponentWithClassName(RadixPrimitiveComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/primitives/drawer.pyi b/reflex/components/radix/primitives/drawer.pyi index 650967e3f..1ca1e4325 100644 --- a/reflex/components/radix/primitives/drawer.pyi +++ b/reflex/components/radix/primitives/drawer.pyi @@ -23,7 +23,7 @@ class DrawerComponent(RadixPrimitiveComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -90,7 +90,7 @@ class DrawerRoot(DrawerComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_animation_end: Optional[ Union[EventType[[], BASE_STATE], EventType[[bool], BASE_STATE]] ] = None, @@ -158,7 +158,7 @@ class DrawerTrigger(DrawerComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -206,7 +206,7 @@ class DrawerPortal(DrawerComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -254,7 +254,7 @@ class DrawerContent(DrawerComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_close_auto_focus: Optional[EventType[[], BASE_STATE]] = None, @@ -311,7 +311,7 @@ class DrawerOverlay(DrawerComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -359,7 +359,7 @@ class DrawerClose(DrawerTrigger): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -407,7 +407,7 @@ class DrawerTitle(DrawerComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -455,7 +455,7 @@ class DrawerDescription(DrawerComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -503,7 +503,7 @@ class DrawerHandle(DrawerComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -576,7 +576,7 @@ class Drawer(ComponentNamespace): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_animation_end: Optional[ Union[EventType[[], BASE_STATE], EventType[[bool], BASE_STATE]] ] = None, diff --git a/reflex/components/radix/primitives/form.pyi b/reflex/components/radix/primitives/form.pyi index bfeb60ac9..77c8be77c 100644 --- a/reflex/components/radix/primitives/form.pyi +++ b/reflex/components/radix/primitives/form.pyi @@ -25,7 +25,7 @@ class FormComponent(RadixPrimitiveComponentWithClassName): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -113,7 +113,7 @@ class FormRoot(FormComponent, HTMLForm): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_clear_server_errors: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, @@ -204,7 +204,7 @@ class FormField(FormComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -255,7 +255,7 @@ class FormLabel(FormComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -303,7 +303,7 @@ class FormControl(FormComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -401,7 +401,7 @@ class FormMessage(FormComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -452,7 +452,7 @@ class FormValidityState(FormComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -500,7 +500,7 @@ class FormSubmit(FormComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -589,7 +589,7 @@ class Form(FormRoot): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_clear_server_errors: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, @@ -722,7 +722,7 @@ class FormNamespace(ComponentNamespace): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_clear_server_errors: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/primitives/progress.pyi b/reflex/components/radix/primitives/progress.pyi index f3d844e44..32e4bb155 100644 --- a/reflex/components/radix/primitives/progress.pyi +++ b/reflex/components/radix/primitives/progress.pyi @@ -23,7 +23,7 @@ class ProgressComponent(RadixPrimitiveComponentWithClassName): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -78,7 +78,7 @@ class ProgressRoot(ProgressComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -192,7 +192,7 @@ class ProgressIndicator(ProgressComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -313,7 +313,7 @@ class Progress(ProgressRoot): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -435,7 +435,7 @@ class ProgressNamespace(ComponentNamespace): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/primitives/slider.pyi b/reflex/components/radix/primitives/slider.pyi index 161d76199..2a14ba518 100644 --- a/reflex/components/radix/primitives/slider.pyi +++ b/reflex/components/radix/primitives/slider.pyi @@ -26,7 +26,7 @@ class SliderComponent(RadixPrimitiveComponentWithClassName): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -93,7 +93,7 @@ class SliderRoot(SliderComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -150,7 +150,7 @@ class SliderTrack(SliderComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -199,7 +199,7 @@ class SliderRange(SliderComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -248,7 +248,7 @@ class SliderThumb(SliderComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/themes/base.pyi b/reflex/components/radix/themes/base.pyi index b617fd40a..57cebcbb8 100644 --- a/reflex/components/radix/themes/base.pyi +++ b/reflex/components/radix/themes/base.pyi @@ -102,7 +102,7 @@ class CommonMarginProps(Component): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -156,7 +156,7 @@ class RadixLoadingProp(Component): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -203,7 +203,7 @@ class RadixThemesComponent(Component): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -252,7 +252,7 @@ class RadixThemesTriggerComponent(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -384,7 +384,7 @@ class Theme(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -443,7 +443,7 @@ class ThemePanel(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -493,7 +493,7 @@ class RadixThemesColorModeProvider(Component): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/themes/color_mode.pyi b/reflex/components/radix/themes/color_mode.pyi index 43a9dd31a..20a564712 100644 --- a/reflex/components/radix/themes/color_mode.pyi +++ b/reflex/components/radix/themes/color_mode.pyi @@ -33,7 +33,7 @@ class ColorModeIcon(Cond): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -217,7 +217,7 @@ class ColorModeIconButton(IconButton): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -390,7 +390,7 @@ class ColorModeSwitch(Switch): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_change: Optional[ Union[EventType[[], BASE_STATE], EventType[[bool], BASE_STATE]] diff --git a/reflex/components/radix/themes/components/alert_dialog.pyi b/reflex/components/radix/themes/components/alert_dialog.pyi index 3cd806b1c..ad243df34 100644 --- a/reflex/components/radix/themes/components/alert_dialog.pyi +++ b/reflex/components/radix/themes/components/alert_dialog.pyi @@ -29,7 +29,7 @@ class AlertDialogRoot(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -84,7 +84,7 @@ class AlertDialogTrigger(RadixThemesTriggerComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -161,7 +161,7 @@ class AlertDialogContent(elements.Div, RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_close_auto_focus: Optional[EventType[[], BASE_STATE]] = None, @@ -234,7 +234,7 @@ class AlertDialogTitle(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -283,7 +283,7 @@ class AlertDialogDescription(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -332,7 +332,7 @@ class AlertDialogAction(RadixThemesTriggerComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -372,7 +372,7 @@ class AlertDialogCancel(RadixThemesTriggerComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/themes/components/aspect_ratio.pyi b/reflex/components/radix/themes/components/aspect_ratio.pyi index 8fde7f30e..882014073 100644 --- a/reflex/components/radix/themes/components/aspect_ratio.pyi +++ b/reflex/components/radix/themes/components/aspect_ratio.pyi @@ -23,7 +23,7 @@ class AspectRatio(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/themes/components/avatar.pyi b/reflex/components/radix/themes/components/avatar.pyi index f6c07ed29..e0ff0d913 100644 --- a/reflex/components/radix/themes/components/avatar.pyi +++ b/reflex/components/radix/themes/components/avatar.pyi @@ -113,7 +113,7 @@ class Avatar(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/themes/components/badge.pyi b/reflex/components/radix/themes/components/badge.pyi index 59a243c48..3e4f19f6e 100644 --- a/reflex/components/radix/themes/components/badge.pyi +++ b/reflex/components/radix/themes/components/badge.pyi @@ -134,7 +134,7 @@ class Badge(elements.Span, RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/themes/components/button.pyi b/reflex/components/radix/themes/components/button.pyi index f01c94fc2..ea2b63fbe 100644 --- a/reflex/components/radix/themes/components/button.pyi +++ b/reflex/components/radix/themes/components/button.pyi @@ -154,7 +154,7 @@ class Button(elements.Button, RadixLoadingProp, RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/themes/components/callout.pyi b/reflex/components/radix/themes/components/callout.pyi index 53bea31e7..b2643b558 100644 --- a/reflex/components/radix/themes/components/callout.pyi +++ b/reflex/components/radix/themes/components/callout.pyi @@ -132,7 +132,7 @@ class CalloutRoot(elements.Div, RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -226,7 +226,7 @@ class CalloutIcon(elements.Div, RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -315,7 +315,7 @@ class CalloutText(elements.P, RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -487,7 +487,7 @@ class Callout(CalloutRoot): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -665,7 +665,7 @@ class CalloutNamespace(ComponentNamespace): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/themes/components/card.pyi b/reflex/components/radix/themes/components/card.pyi index de7ccd019..74b91f8ab 100644 --- a/reflex/components/radix/themes/components/card.pyi +++ b/reflex/components/radix/themes/components/card.pyi @@ -67,7 +67,7 @@ class Card(elements.Div, RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/themes/components/checkbox.pyi b/reflex/components/radix/themes/components/checkbox.pyi index f7a1e85d2..a8ac3a0b6 100644 --- a/reflex/components/radix/themes/components/checkbox.pyi +++ b/reflex/components/radix/themes/components/checkbox.pyi @@ -114,7 +114,7 @@ class Checkbox(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_change: Optional[ Union[EventType[[], BASE_STATE], EventType[[bool], BASE_STATE]] @@ -264,7 +264,7 @@ class HighLevelCheckbox(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_change: Optional[ Union[EventType[[], BASE_STATE], EventType[[bool], BASE_STATE]] @@ -411,7 +411,7 @@ class CheckboxNamespace(ComponentNamespace): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_change: Optional[ Union[EventType[[], BASE_STATE], EventType[[bool], BASE_STATE]] diff --git a/reflex/components/radix/themes/components/checkbox_cards.pyi b/reflex/components/radix/themes/components/checkbox_cards.pyi index be2cbbed6..64eb151b0 100644 --- a/reflex/components/radix/themes/components/checkbox_cards.pyi +++ b/reflex/components/radix/themes/components/checkbox_cards.pyi @@ -147,7 +147,7 @@ class CheckboxCardsRoot(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -202,7 +202,7 @@ class CheckboxCardsItem(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/themes/components/checkbox_group.pyi b/reflex/components/radix/themes/components/checkbox_group.pyi index 47c8073fc..ffeeb75cf 100644 --- a/reflex/components/radix/themes/components/checkbox_group.pyi +++ b/reflex/components/radix/themes/components/checkbox_group.pyi @@ -106,7 +106,7 @@ class CheckboxGroupRoot(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -163,7 +163,7 @@ class CheckboxGroupItem(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/themes/components/context_menu.pyi b/reflex/components/radix/themes/components/context_menu.pyi index 97d0448a3..c5ef757d1 100644 --- a/reflex/components/radix/themes/components/context_menu.pyi +++ b/reflex/components/radix/themes/components/context_menu.pyi @@ -33,7 +33,7 @@ class ContextMenuRoot(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -89,7 +89,7 @@ class ContextMenuTrigger(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -242,7 +242,7 @@ class ContextMenuContent(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_close_auto_focus: Optional[EventType[[], BASE_STATE]] = None, @@ -318,7 +318,7 @@ class ContextMenuSub(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -376,7 +376,7 @@ class ContextMenuSubTrigger(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -446,7 +446,7 @@ class ContextMenuSubContent(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -578,7 +578,7 @@ class ContextMenuItem(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -634,7 +634,7 @@ class ContextMenuSeparator(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/themes/components/data_list.pyi b/reflex/components/radix/themes/components/data_list.pyi index 3712209b4..3b409363b 100644 --- a/reflex/components/radix/themes/components/data_list.pyi +++ b/reflex/components/radix/themes/components/data_list.pyi @@ -59,7 +59,7 @@ class DataListRoot(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -128,7 +128,7 @@ class DataListItem(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -249,7 +249,7 @@ class DataListLabel(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -302,7 +302,7 @@ class DataListValue(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/themes/components/dialog.pyi b/reflex/components/radix/themes/components/dialog.pyi index 77302bc82..4c3045741 100644 --- a/reflex/components/radix/themes/components/dialog.pyi +++ b/reflex/components/radix/themes/components/dialog.pyi @@ -27,7 +27,7 @@ class DialogRoot(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -82,7 +82,7 @@ class DialogTrigger(RadixThemesTriggerComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -122,7 +122,7 @@ class DialogTitle(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -207,7 +207,7 @@ class DialogContent(elements.Div, RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_close_auto_focus: Optional[EventType[[], BASE_STATE]] = None, @@ -283,7 +283,7 @@ class DialogDescription(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -332,7 +332,7 @@ class DialogClose(RadixThemesTriggerComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -379,7 +379,7 @@ class Dialog(ComponentNamespace): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/themes/components/dropdown_menu.pyi b/reflex/components/radix/themes/components/dropdown_menu.pyi index 1a2ce66b8..96c624f89 100644 --- a/reflex/components/radix/themes/components/dropdown_menu.pyi +++ b/reflex/components/radix/themes/components/dropdown_menu.pyi @@ -35,7 +35,7 @@ class DropdownMenuRoot(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -93,7 +93,7 @@ class DropdownMenuTrigger(RadixThemesTriggerComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -236,7 +236,7 @@ class DropdownMenuContent(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_close_auto_focus: Optional[EventType[[], BASE_STATE]] = None, @@ -313,7 +313,7 @@ class DropdownMenuSubTrigger(RadixThemesTriggerComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -355,7 +355,7 @@ class DropdownMenuSub(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -428,7 +428,7 @@ class DropdownMenuSubContent(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -560,7 +560,7 @@ class DropdownMenuItem(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -616,7 +616,7 @@ class DropdownMenuSeparator(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/themes/components/hover_card.pyi b/reflex/components/radix/themes/components/hover_card.pyi index 7044bc3ca..4b1de0d89 100644 --- a/reflex/components/radix/themes/components/hover_card.pyi +++ b/reflex/components/radix/themes/components/hover_card.pyi @@ -29,7 +29,7 @@ class HoverCardRoot(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -86,7 +86,7 @@ class HoverCardTrigger(RadixThemesTriggerComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -194,7 +194,7 @@ class HoverCardContent(elements.Div, RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -274,7 +274,7 @@ class HoverCard(ComponentNamespace): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/themes/components/icon_button.pyi b/reflex/components/radix/themes/components/icon_button.pyi index 81090e2e2..e600a9bee 100644 --- a/reflex/components/radix/themes/components/icon_button.pyi +++ b/reflex/components/radix/themes/components/icon_button.pyi @@ -154,7 +154,7 @@ class IconButton(elements.Button, RadixLoadingProp, RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/themes/components/inset.pyi b/reflex/components/radix/themes/components/inset.pyi index f085f4e0e..c4f07320b 100644 --- a/reflex/components/radix/themes/components/inset.pyi +++ b/reflex/components/radix/themes/components/inset.pyi @@ -132,7 +132,7 @@ class Inset(elements.Div, RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/themes/components/popover.pyi b/reflex/components/radix/themes/components/popover.pyi index d4be01e94..d4b324817 100644 --- a/reflex/components/radix/themes/components/popover.pyi +++ b/reflex/components/radix/themes/components/popover.pyi @@ -28,7 +28,7 @@ class PopoverRoot(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -84,7 +84,7 @@ class PopoverTrigger(RadixThemesTriggerComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -187,7 +187,7 @@ class PopoverContent(elements.Div, RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_close_auto_focus: Optional[EventType[[], BASE_STATE]] = None, @@ -273,7 +273,7 @@ class PopoverClose(RadixThemesTriggerComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/themes/components/progress.pyi b/reflex/components/radix/themes/components/progress.pyi index f4f84df6e..5b3f8ba51 100644 --- a/reflex/components/radix/themes/components/progress.pyi +++ b/reflex/components/radix/themes/components/progress.pyi @@ -113,7 +113,7 @@ class Progress(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/themes/components/radio.pyi b/reflex/components/radix/themes/components/radio.pyi index ed49aeb1a..49490286f 100644 --- a/reflex/components/radix/themes/components/radio.pyi +++ b/reflex/components/radix/themes/components/radio.pyi @@ -103,7 +103,7 @@ class Radio(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/themes/components/radio_cards.pyi b/reflex/components/radix/themes/components/radio_cards.pyi index a9fc8075e..5ba01d0a0 100644 --- a/reflex/components/radix/themes/components/radio_cards.pyi +++ b/reflex/components/radix/themes/components/radio_cards.pyi @@ -161,7 +161,7 @@ class RadioCardsRoot(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -232,7 +232,7 @@ class RadioCardsItem(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/themes/components/radio_group.pyi b/reflex/components/radix/themes/components/radio_group.pyi index 72ff5ecdb..f251f541f 100644 --- a/reflex/components/radix/themes/components/radio_group.pyi +++ b/reflex/components/radix/themes/components/radio_group.pyi @@ -111,7 +111,7 @@ class RadioGroupRoot(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_change: Optional[ Union[EventType[[], BASE_STATE], EventType[[str], BASE_STATE]] @@ -176,7 +176,7 @@ class RadioGroupItem(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -318,7 +318,7 @@ class HighLevelRadioGroup(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -470,7 +470,7 @@ class RadioGroup(ComponentNamespace): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/themes/components/scroll_area.pyi b/reflex/components/radix/themes/components/scroll_area.pyi index 644c65e78..5945cc3af 100644 --- a/reflex/components/radix/themes/components/scroll_area.pyi +++ b/reflex/components/radix/themes/components/scroll_area.pyi @@ -35,7 +35,7 @@ class ScrollArea(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/themes/components/segmented_control.pyi b/reflex/components/radix/themes/components/segmented_control.pyi index 896be5dd6..7ad115800 100644 --- a/reflex/components/radix/themes/components/segmented_control.pyi +++ b/reflex/components/radix/themes/components/segmented_control.pyi @@ -115,7 +115,7 @@ class SegmentedControlRoot(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_change: Optional[ Union[EventType[[], BASE_STATE], EventType[[str | List[str]], BASE_STATE]] @@ -176,7 +176,7 @@ class SegmentedControlItem(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/themes/components/select.pyi b/reflex/components/radix/themes/components/select.pyi index de35cf0a4..39caeef9c 100644 --- a/reflex/components/radix/themes/components/select.pyi +++ b/reflex/components/radix/themes/components/select.pyi @@ -42,7 +42,7 @@ class SelectRoot(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_change: Optional[ Union[EventType[[], BASE_STATE], EventType[[str], BASE_STATE]] @@ -182,7 +182,7 @@ class SelectTrigger(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -321,7 +321,7 @@ class SelectContent(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_close_auto_focus: Optional[EventType[[], BASE_STATE]] = None, @@ -384,7 +384,7 @@ class SelectGroup(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -435,7 +435,7 @@ class SelectItem(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -486,7 +486,7 @@ class SelectLabel(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -535,7 +535,7 @@ class SelectSeparator(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -687,7 +687,7 @@ class HighLevelSelect(SelectRoot): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_change: Optional[ Union[EventType[[], BASE_STATE], EventType[[str], BASE_STATE]] @@ -867,7 +867,7 @@ class Select(ComponentNamespace): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_change: Optional[ Union[EventType[[], BASE_STATE], EventType[[str], BASE_STATE]] diff --git a/reflex/components/radix/themes/components/separator.pyi b/reflex/components/radix/themes/components/separator.pyi index 92edc8476..7c4bcd55f 100644 --- a/reflex/components/radix/themes/components/separator.pyi +++ b/reflex/components/radix/themes/components/separator.pyi @@ -112,7 +112,7 @@ class Separator(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/themes/components/skeleton.pyi b/reflex/components/radix/themes/components/skeleton.pyi index 6ecb35d09..859954ccc 100644 --- a/reflex/components/radix/themes/components/skeleton.pyi +++ b/reflex/components/radix/themes/components/skeleton.pyi @@ -42,7 +42,7 @@ class Skeleton(RadixLoadingProp, RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/themes/components/slider.pyi b/reflex/components/radix/themes/components/slider.pyi index d29570536..972385e52 100644 --- a/reflex/components/radix/themes/components/slider.pyi +++ b/reflex/components/radix/themes/components/slider.pyi @@ -138,7 +138,7 @@ class Slider(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_change: Optional[ Union[ diff --git a/reflex/components/radix/themes/components/spinner.pyi b/reflex/components/radix/themes/components/spinner.pyi index 434a7b531..1c2b9c65e 100644 --- a/reflex/components/radix/themes/components/spinner.pyi +++ b/reflex/components/radix/themes/components/spinner.pyi @@ -37,7 +37,7 @@ class Spinner(RadixLoadingProp, RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/themes/components/switch.pyi b/reflex/components/radix/themes/components/switch.pyi index f0377904b..8a858040a 100644 --- a/reflex/components/radix/themes/components/switch.pyi +++ b/reflex/components/radix/themes/components/switch.pyi @@ -117,7 +117,7 @@ class Switch(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_change: Optional[ Union[EventType[[], BASE_STATE], EventType[[bool], BASE_STATE]] diff --git a/reflex/components/radix/themes/components/table.pyi b/reflex/components/radix/themes/components/table.pyi index 637fdee48..822c4b56f 100644 --- a/reflex/components/radix/themes/components/table.pyi +++ b/reflex/components/radix/themes/components/table.pyi @@ -65,7 +65,7 @@ class TableRoot(elements.Table, RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -159,7 +159,7 @@ class TableHeader(elements.Thead, RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -255,7 +255,7 @@ class TableRow(elements.Tr, RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -356,7 +356,7 @@ class TableColumnHeaderCell(elements.Th, RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -452,7 +452,7 @@ class TableBody(elements.Tbody, RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -552,7 +552,7 @@ class TableCell(elements.Td, RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -657,7 +657,7 @@ class TableRowHeaderCell(elements.Th, RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/themes/components/tabs.pyi b/reflex/components/radix/themes/components/tabs.pyi index 286c6130b..b5e7de5f4 100644 --- a/reflex/components/radix/themes/components/tabs.pyi +++ b/reflex/components/radix/themes/components/tabs.pyi @@ -39,7 +39,7 @@ class TabsRoot(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_change: Optional[ Union[EventType[[], BASE_STATE], EventType[[str], BASE_STATE]] @@ -106,7 +106,7 @@ class TabsList(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -221,7 +221,7 @@ class TabsTrigger(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -275,7 +275,7 @@ class TabsContent(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -341,7 +341,7 @@ class Tabs(ComponentNamespace): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_change: Optional[ Union[EventType[[], BASE_STATE], EventType[[str], BASE_STATE]] diff --git a/reflex/components/radix/themes/components/text_area.pyi b/reflex/components/radix/themes/components/text_area.pyi index bf650c10d..196346cf9 100644 --- a/reflex/components/radix/themes/components/text_area.pyi +++ b/reflex/components/radix/themes/components/text_area.pyi @@ -167,7 +167,7 @@ class TextArea(RadixThemesComponent, elements.Textarea): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[ Union[EventType[[], BASE_STATE], EventType[[str], BASE_STATE]] ] = None, diff --git a/reflex/components/radix/themes/components/text_field.pyi b/reflex/components/radix/themes/components/text_field.pyi index 455e47fcf..874ac07a0 100644 --- a/reflex/components/radix/themes/components/text_field.pyi +++ b/reflex/components/radix/themes/components/text_field.pyi @@ -148,7 +148,7 @@ class TextFieldRoot(elements.Div, RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[ Union[EventType[[], BASE_STATE], EventType[[str], BASE_STATE]] ] = None, @@ -313,7 +313,7 @@ class TextFieldSlot(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -483,7 +483,7 @@ class TextField(ComponentNamespace): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[ Union[EventType[[], BASE_STATE], EventType[[str], BASE_STATE]] ] = None, diff --git a/reflex/components/radix/themes/components/tooltip.pyi b/reflex/components/radix/themes/components/tooltip.pyi index a46897e32..fab1d0c12 100644 --- a/reflex/components/radix/themes/components/tooltip.pyi +++ b/reflex/components/radix/themes/components/tooltip.pyi @@ -61,7 +61,7 @@ class Tooltip(RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/themes/layout/base.pyi b/reflex/components/radix/themes/layout/base.pyi index 3a42698e4..3dc46492f 100644 --- a/reflex/components/radix/themes/layout/base.pyi +++ b/reflex/components/radix/themes/layout/base.pyi @@ -200,7 +200,7 @@ class LayoutComponent(CommonMarginProps, RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/themes/layout/box.pyi b/reflex/components/radix/themes/layout/box.pyi index a8b6a4dcb..648995b01 100644 --- a/reflex/components/radix/themes/layout/box.pyi +++ b/reflex/components/radix/themes/layout/box.pyi @@ -47,7 +47,7 @@ class Box(elements.Div, RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/themes/layout/center.pyi b/reflex/components/radix/themes/layout/center.pyi index be834a632..e932be6c8 100644 --- a/reflex/components/radix/themes/layout/center.pyi +++ b/reflex/components/radix/themes/layout/center.pyi @@ -124,7 +124,7 @@ class Center(Flex): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/themes/layout/container.pyi b/reflex/components/radix/themes/layout/container.pyi index aafdb3e2e..36ea79457 100644 --- a/reflex/components/radix/themes/layout/container.pyi +++ b/reflex/components/radix/themes/layout/container.pyi @@ -64,7 +64,7 @@ class Container(elements.Div, RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/themes/layout/flex.pyi b/reflex/components/radix/themes/layout/flex.pyi index 0bf6db96c..8462720d0 100644 --- a/reflex/components/radix/themes/layout/flex.pyi +++ b/reflex/components/radix/themes/layout/flex.pyi @@ -127,7 +127,7 @@ class Flex(elements.Div, RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/themes/layout/grid.pyi b/reflex/components/radix/themes/layout/grid.pyi index d5342075e..0f4be760f 100644 --- a/reflex/components/radix/themes/layout/grid.pyi +++ b/reflex/components/radix/themes/layout/grid.pyi @@ -156,7 +156,7 @@ class Grid(elements.Div, RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/themes/layout/list.pyi b/reflex/components/radix/themes/layout/list.pyi index b0ea748e2..9c983c2ff 100644 --- a/reflex/components/radix/themes/layout/list.pyi +++ b/reflex/components/radix/themes/layout/list.pyi @@ -83,7 +83,7 @@ class BaseList(Component): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -201,7 +201,7 @@ class UnorderedList(BaseList, Ul): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -336,7 +336,7 @@ class OrderedList(BaseList, Ol): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -428,7 +428,7 @@ class ListItem(Li): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -536,7 +536,7 @@ class List(ComponentNamespace): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/themes/layout/section.pyi b/reflex/components/radix/themes/layout/section.pyi index e03e889e4..7e909bf64 100644 --- a/reflex/components/radix/themes/layout/section.pyi +++ b/reflex/components/radix/themes/layout/section.pyi @@ -61,7 +61,7 @@ class Section(elements.Section, RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/themes/layout/spacer.pyi b/reflex/components/radix/themes/layout/spacer.pyi index a5263b162..bd98ac656 100644 --- a/reflex/components/radix/themes/layout/spacer.pyi +++ b/reflex/components/radix/themes/layout/spacer.pyi @@ -124,7 +124,7 @@ class Spacer(Flex): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/themes/layout/stack.pyi b/reflex/components/radix/themes/layout/stack.pyi index ee7cea1bb..712e050a8 100644 --- a/reflex/components/radix/themes/layout/stack.pyi +++ b/reflex/components/radix/themes/layout/stack.pyi @@ -101,7 +101,7 @@ class Stack(Flex): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -236,7 +236,7 @@ class VStack(Stack): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -371,7 +371,7 @@ class HStack(Stack): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/themes/typography/blockquote.pyi b/reflex/components/radix/themes/typography/blockquote.pyi index a898cf424..efb18a5b2 100644 --- a/reflex/components/radix/themes/typography/blockquote.pyi +++ b/reflex/components/radix/themes/typography/blockquote.pyi @@ -138,7 +138,7 @@ class Blockquote(elements.Blockquote, RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/themes/typography/code.pyi b/reflex/components/radix/themes/typography/code.pyi index 3d1e5263c..a211b97c4 100644 --- a/reflex/components/radix/themes/typography/code.pyi +++ b/reflex/components/radix/themes/typography/code.pyi @@ -143,7 +143,7 @@ class Code(elements.Code, RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/themes/typography/heading.pyi b/reflex/components/radix/themes/typography/heading.pyi index d55583bf0..a58b4ebf4 100644 --- a/reflex/components/radix/themes/typography/heading.pyi +++ b/reflex/components/radix/themes/typography/heading.pyi @@ -163,7 +163,7 @@ class Heading(elements.H1, RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/themes/typography/link.pyi b/reflex/components/radix/themes/typography/link.pyi index adff27a1e..8e3cfb959 100644 --- a/reflex/components/radix/themes/typography/link.pyi +++ b/reflex/components/radix/themes/typography/link.pyi @@ -175,7 +175,7 @@ class Link(RadixThemesComponent, A, MemoizationLeaf): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/radix/themes/typography/text.pyi b/reflex/components/radix/themes/typography/text.pyi index 4306ec1b1..a5d023d37 100644 --- a/reflex/components/radix/themes/typography/text.pyi +++ b/reflex/components/radix/themes/typography/text.pyi @@ -230,7 +230,7 @@ class Text(elements.Span, RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -487,7 +487,7 @@ class Span(Text): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -584,7 +584,7 @@ class Em(elements.Em, RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -679,7 +679,7 @@ class Kbd(elements.Kbd, RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -770,7 +770,7 @@ class Quote(elements.Q, RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -860,7 +860,7 @@ class Strong(elements.Strong, RadixThemesComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -1113,7 +1113,7 @@ class TextNamespace(ComponentNamespace): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/react_player/audio.pyi b/reflex/components/react_player/audio.pyi index a092251fe..797d5ad8a 100644 --- a/reflex/components/react_player/audio.pyi +++ b/reflex/components/react_player/audio.pyi @@ -33,7 +33,7 @@ class Audio(ReactPlayer): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_buffer: Optional[EventType[[], BASE_STATE]] = None, on_buffer_end: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/react_player/react_player.pyi b/reflex/components/react_player/react_player.pyi index 06ec95aab..4e2a8a821 100644 --- a/reflex/components/react_player/react_player.pyi +++ b/reflex/components/react_player/react_player.pyi @@ -38,7 +38,7 @@ class ReactPlayer(NoSSRComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_buffer: Optional[EventType[[], BASE_STATE]] = None, on_buffer_end: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/react_player/video.pyi b/reflex/components/react_player/video.pyi index a8f881ceb..3739d45c0 100644 --- a/reflex/components/react_player/video.pyi +++ b/reflex/components/react_player/video.pyi @@ -33,7 +33,7 @@ class Video(ReactPlayer): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_buffer: Optional[EventType[[], BASE_STATE]] = None, on_buffer_end: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/recharts/cartesian.pyi b/reflex/components/recharts/cartesian.pyi index 24d85f013..84f16661d 100644 --- a/reflex/components/recharts/cartesian.pyi +++ b/reflex/components/recharts/cartesian.pyi @@ -119,7 +119,7 @@ class Axis(Recharts): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -300,7 +300,7 @@ class XAxis(Axis): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -484,7 +484,7 @@ class YAxis(Axis): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -610,7 +610,7 @@ class ZAxis(Recharts): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -675,7 +675,7 @@ class Brush(Recharts): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_change: Optional[EventType[[], BASE_STATE]] = None, **props, ) -> "Brush": @@ -771,7 +771,7 @@ class Cartesian(Recharts): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_animation_end: Optional[EventType[[], BASE_STATE]] = None, on_animation_start: Optional[EventType[[], BASE_STATE]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, @@ -948,7 +948,7 @@ class Area(Cartesian): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_animation_end: Optional[EventType[[], BASE_STATE]] = None, on_animation_start: Optional[EventType[[], BASE_STATE]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, @@ -1090,7 +1090,7 @@ class Bar(Cartesian): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_animation_end: Optional[EventType[[], BASE_STATE]] = None, on_animation_start: Optional[EventType[[], BASE_STATE]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, @@ -1274,7 +1274,7 @@ class Line(Cartesian): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_animation_end: Optional[EventType[[], BASE_STATE]] = None, on_animation_start: Optional[EventType[[], BASE_STATE]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, @@ -1421,7 +1421,7 @@ class Scatter(Recharts): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -1536,7 +1536,7 @@ class Funnel(Recharts): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_animation_end: Optional[EventType[[], BASE_STATE]] = None, on_animation_start: Optional[EventType[[], BASE_STATE]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, @@ -1609,7 +1609,7 @@ class ErrorBar(Recharts): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -1670,7 +1670,7 @@ class Reference(Recharts): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -1736,7 +1736,7 @@ class ReferenceLine(Reference): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -1807,7 +1807,7 @@ class ReferenceDot(Reference): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -1887,7 +1887,7 @@ class ReferenceArea(Recharts): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -1948,7 +1948,7 @@ class Grid(Recharts): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -2014,7 +2014,7 @@ class CartesianGrid(Grid): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -2096,7 +2096,7 @@ class CartesianAxis(Grid): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/recharts/charts.pyi b/reflex/components/recharts/charts.pyi index 94cabdf00..6bf9b6a60 100644 --- a/reflex/components/recharts/charts.pyi +++ b/reflex/components/recharts/charts.pyi @@ -25,7 +25,7 @@ class ChartBase(RechartsCharts): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -97,7 +97,7 @@ class CategoricalChartBase(ChartBase): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -182,7 +182,7 @@ class AreaChart(CategoricalChartBase): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -266,7 +266,7 @@ class BarChart(CategoricalChartBase): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -349,7 +349,7 @@ class LineChart(CategoricalChartBase): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -438,7 +438,7 @@ class ComposedChart(CategoricalChartBase): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -504,7 +504,7 @@ class PieChart(ChartBase): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -572,7 +572,7 @@ class RadarChart(ChartBase): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_mouse_enter: Optional[EventType[[], BASE_STATE]] = None, on_mouse_leave: Optional[EventType[[], BASE_STATE]] = None, @@ -632,7 +632,7 @@ class RadialBarChart(ChartBase): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -699,7 +699,7 @@ class ScatterChart(ChartBase): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_mouse_down: Optional[EventType[[], BASE_STATE]] = None, on_mouse_enter: Optional[EventType[[], BASE_STATE]] = None, @@ -750,7 +750,7 @@ class FunnelChart(ChartBase): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -820,7 +820,7 @@ class Treemap(RechartsCharts): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_animation_end: Optional[EventType[[], BASE_STATE]] = None, on_animation_start: Optional[EventType[[], BASE_STATE]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/recharts/general.pyi b/reflex/components/recharts/general.pyi index fa3362500..823a50fce 100644 --- a/reflex/components/recharts/general.pyi +++ b/reflex/components/recharts/general.pyi @@ -30,7 +30,7 @@ class ResponsiveContainer(Recharts, MemoizationLeaf): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -141,7 +141,7 @@ class Legend(Recharts): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -231,7 +231,7 @@ class GraphingTooltip(Recharts): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -342,7 +342,7 @@ class Label(Recharts): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -442,7 +442,7 @@ class LabelList(Recharts): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/recharts/polar.pyi b/reflex/components/recharts/polar.pyi index 308c796cf..5ca96acb6 100644 --- a/reflex/components/recharts/polar.pyi +++ b/reflex/components/recharts/polar.pyi @@ -81,7 +81,7 @@ class Pie(Recharts): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_animation_end: Optional[EventType[[], BASE_STATE]] = None, on_animation_start: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, @@ -190,7 +190,7 @@ class Radar(Recharts): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_animation_end: Optional[EventType[[], BASE_STATE]] = None, on_animation_start: Optional[EventType[[], BASE_STATE]] = None, **props, @@ -286,7 +286,7 @@ class RadialBar(Recharts): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_animation_end: Optional[EventType[[], BASE_STATE]] = None, on_animation_start: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, @@ -355,7 +355,7 @@ class PolarAngleAxis(Recharts): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -431,7 +431,7 @@ class PolarGrid(Recharts): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -551,7 +551,7 @@ class PolarRadiusAxis(Recharts): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_mouse_enter: Optional[EventType[[], BASE_STATE]] = None, on_mouse_leave: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/recharts/recharts.pyi b/reflex/components/recharts/recharts.pyi index 5055707dc..10e1b96c1 100644 --- a/reflex/components/recharts/recharts.pyi +++ b/reflex/components/recharts/recharts.pyi @@ -22,7 +22,7 @@ class Recharts(Component): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -68,7 +68,7 @@ class RechartsCharts(NoSSRComponent, MemoizationLeaf): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/sonner/toast.pyi b/reflex/components/sonner/toast.pyi index aa6a5b780..f4f1028bd 100644 --- a/reflex/components/sonner/toast.pyi +++ b/reflex/components/sonner/toast.pyi @@ -116,7 +116,7 @@ class Toaster(Component): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, diff --git a/reflex/components/suneditor/editor.pyi b/reflex/components/suneditor/editor.pyi index 8ada33aba..66ab4863e 100644 --- a/reflex/components/suneditor/editor.pyi +++ b/reflex/components/suneditor/editor.pyi @@ -126,7 +126,7 @@ class Editor(NoSSRComponent): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[ Union[EventType[[], BASE_STATE], EventType[[str], BASE_STATE]] ] = None, diff --git a/reflex/experimental/layout.pyi b/reflex/experimental/layout.pyi index a334e8de7..4c7fc8d47 100644 --- a/reflex/experimental/layout.pyi +++ b/reflex/experimental/layout.pyi @@ -50,7 +50,7 @@ class Sidebar(Box, MemoizationLeaf): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -118,7 +118,7 @@ class DrawerSidebar(DrawerRoot): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_animation_end: Optional[ Union[EventType[[], BASE_STATE], EventType[[bool], BASE_STATE]] ] = None, @@ -172,7 +172,7 @@ class SidebarTrigger(Fragment): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -237,7 +237,7 @@ class Layout(Box): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, @@ -305,7 +305,7 @@ class LayoutNamespace(ComponentNamespace): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, From 0c482bda3ccbae3adef8d4d5dbea222a835e7160 Mon Sep 17 00:00:00 2001 From: Khaleel Al-Adhami Date: Thu, 7 Nov 2024 14:50:26 -0800 Subject: [PATCH 08/17] mark var methods as private (#4319) --- reflex/components/component.py | 2 +- reflex/components/el/elements/forms.py | 4 +- reflex/components/plotly/plotly.py | 2 +- reflex/components/radix/themes/color_mode.py | 2 +- reflex/components/radix/themes/color_mode.pyi | 2 +- reflex/state.py | 8 +-- reflex/vars/base.py | 54 +++++-------------- tests/units/test_var.py | 15 +++--- 8 files changed, 31 insertions(+), 58 deletions(-) diff --git a/reflex/components/component.py b/reflex/components/component.py index 5fb9eed6f..face5d557 100644 --- a/reflex/components/component.py +++ b/reflex/components/component.py @@ -1450,7 +1450,7 @@ class Component(BaseComponent, ABC): """ ref = self.get_ref() if ref is not None: - return f"const {ref} = useRef(null); {str(Var(_js_expr=ref).as_ref())} = {ref};" + return f"const {ref} = useRef(null); {str(Var(_js_expr=ref)._as_ref())} = {ref};" def _get_vars_hooks(self) -> dict[str, None]: """Get the hooks required by vars referenced in this component. diff --git a/reflex/components/el/elements/forms.py b/reflex/components/el/elements/forms.py index 4caf14b41..a84718de1 100644 --- a/reflex/components/el/elements/forms.py +++ b/reflex/components/el/elements/forms.py @@ -239,13 +239,13 @@ class Form(BaseHTML): # when ref start with refs_ it's an array of refs, so we need different method # to collect data if ref.startswith("refs_"): - ref_var = Var(_js_expr=ref[:-3]).as_ref() + ref_var = Var(_js_expr=ref[:-3])._as_ref() form_refs[ref[len("refs_") : -3]] = Var( _js_expr=f"getRefValues({str(ref_var)})", _var_data=VarData.merge(ref_var._get_all_var_data()), ) else: - ref_var = Var(_js_expr=ref).as_ref() + ref_var = Var(_js_expr=ref)._as_ref() form_refs[ref[4:]] = Var( _js_expr=f"getRefValue({str(ref_var)})", _var_data=VarData.merge(ref_var._get_all_var_data()), diff --git a/reflex/components/plotly/plotly.py b/reflex/components/plotly/plotly.py index aff6e62b0..1e551ce87 100644 --- a/reflex/components/plotly/plotly.py +++ b/reflex/components/plotly/plotly.py @@ -265,7 +265,7 @@ const extractPoints = (points) => { merge_dicts.append(layout_dict) if self.template is not None: template_dict = LiteralVar.create({"layout": {"template": self.template}}) - merge_dicts.append(template_dict.without_data()) + merge_dicts.append(template_dict._without_data()) if merge_dicts: tag.special_props.append( # Merge all dictionaries and spread the result over props. diff --git a/reflex/components/radix/themes/color_mode.py b/reflex/components/radix/themes/color_mode.py index a01d40e07..2dd0f5e83 100644 --- a/reflex/components/radix/themes/color_mode.py +++ b/reflex/components/radix/themes/color_mode.py @@ -203,5 +203,5 @@ class ColorModeNamespace(Var): color_mode = color_mode_var_and_namespace = ColorModeNamespace( _js_expr=color_mode._js_expr, _var_type=color_mode._var_type, - _var_data=color_mode.get_default_value(), + _var_data=color_mode._get_default_value(), ) diff --git a/reflex/components/radix/themes/color_mode.pyi b/reflex/components/radix/themes/color_mode.pyi index 20a564712..eb3c4234a 100644 --- a/reflex/components/radix/themes/color_mode.pyi +++ b/reflex/components/radix/themes/color_mode.pyi @@ -449,5 +449,5 @@ class ColorModeNamespace(Var): color_mode = color_mode_var_and_namespace = ColorModeNamespace( _js_expr=color_mode._js_expr, _var_type=color_mode._var_type, - _var_data=color_mode.get_default_value(), + _var_data=color_mode._get_default_value(), ) diff --git a/reflex/state.py b/reflex/state.py index 94ff35a88..56c62c150 100644 --- a/reflex/state.py +++ b/reflex/state.py @@ -1036,9 +1036,9 @@ class BaseState(Base, ABC, extra=pydantic.Extra.allow): Args: prop: The var to create a setter for. """ - setter_name = prop.get_setter_name(include_state=False) + setter_name = prop._get_setter_name(include_state=False) if setter_name not in cls.__dict__: - event_handler = cls._create_event_handler(prop.get_setter()) + event_handler = cls._create_event_handler(prop._get_setter()) cls.event_handlers[setter_name] = event_handler setattr(cls, setter_name, event_handler) @@ -1052,7 +1052,7 @@ class BaseState(Base, ABC, extra=pydantic.Extra.allow): # Get the pydantic field for the var. field = cls.get_fields()[prop._var_field_name] if field.required: - default_value = prop.get_default_value() + default_value = prop._get_default_value() if default_value is not None: field.required = False field.default = default_value @@ -1079,7 +1079,7 @@ class BaseState(Base, ABC, extra=pydantic.Extra.allow): return getattr(cls, name) except AttributeError: try: - return Var("", _var_type=annotation_value).get_default_value() + return Var("", _var_type=annotation_value)._get_default_value() except TypeError: pass return None diff --git a/reflex/vars/base.py b/reflex/vars/base.py index 1fa0a539e..b9aa55eb3 100644 --- a/reflex/vars/base.py +++ b/reflex/vars/base.py @@ -734,7 +734,7 @@ class Var(Generic[VAR_TYPE]): return self - def get_default_value(self) -> Any: + def _get_default_value(self) -> Any: """Get the default value of the var. Returns: @@ -777,7 +777,7 @@ class Var(Generic[VAR_TYPE]): ) from e return set() if issubclass(type_, set) else None - def get_setter_name(self, include_state: bool = True) -> str: + def _get_setter_name(self, include_state: bool = True) -> str: """Get the name of the var's generated setter function. Args: @@ -794,7 +794,7 @@ class Var(Generic[VAR_TYPE]): return setter return ".".join((var_data.state, setter)) - def get_setter(self) -> Callable[[BaseState, Any], None]: + def _get_setter(self) -> Callable[[BaseState, Any], None]: """Get the var's setter function. Returns: @@ -820,7 +820,7 @@ class Var(Generic[VAR_TYPE]): else: setattr(state, actual_name, value) - setter.__qualname__ = self.get_setter_name() + setter.__qualname__ = self._get_setter_name() return setter @@ -953,7 +953,7 @@ class Var(Generic[VAR_TYPE]): else PROTOTYPE_TO_STRING.call(self).to(StringVar) ) - def as_ref(self) -> Var: + def _as_ref(self) -> Var: """Get a reference to the var. Returns: @@ -998,7 +998,7 @@ class Var(Generic[VAR_TYPE]): type_of = FunctionStringVar("typeof") return type_of.call(self).to(StringVar) - def without_data(self): + def _without_data(self): """Create a copy of the var without the data. Returns: @@ -1006,20 +1006,6 @@ class Var(Generic[VAR_TYPE]): """ return dataclasses.replace(self, _var_data=None) - def contains(self, value: Any = None, field: Any = None): - """Get an attribute of the var. - - Args: - value: The value to check for. - field: The field to check for. - - Raises: - TypeError: If the var does not support contains check. - """ - raise TypeError( - f"Var of type {self._var_type} does not support contains check." - ) - def __get__(self, instance: Any, owner: Any): """Get the var. @@ -1032,14 +1018,6 @@ class Var(Generic[VAR_TYPE]): """ return self - def reverse(self): - """Reverse the var. - - Raises: - TypeError: If the var does not support reverse. - """ - raise TypeError("Cannot reverse non-list var.") - def __getattr__(self, name: str): """Get an attribute of the var. @@ -1056,6 +1034,13 @@ class Var(Generic[VAR_TYPE]): if name.startswith("_"): return self.__getattribute__(name) + if name == "contains": + raise TypeError( + f"Var of type {self._var_type} does not support contains check." + ) + if name == "reverse": + raise TypeError("Cannot reverse non-list var.") + if self._var_type is Any: raise TypeError( f"You must provide an annotation for the state var `{str(self)}`. Annotation cannot be `{self._var_type}`." @@ -1084,10 +1069,7 @@ class Var(Generic[VAR_TYPE]): try: return json.loads(str(self)) except ValueError: - try: - return json.loads(self.json()) - except (ValueError, NotImplementedError): - return str(self) + return str(self) @property def _var_state(self) -> str: @@ -1165,14 +1147,6 @@ class Var(Generic[VAR_TYPE]): "'in' operator not supported for Var types, use Var.contains() instead." ) - def json(self) -> str: - """Serialize the var to a JSON string. - - Raises: - NotImplementedError: If the method is not implemented. - """ - raise NotImplementedError("Var subclasses must implement the json method.") - OUTPUT = TypeVar("OUTPUT", bound=Var) diff --git a/tests/units/test_var.py b/tests/units/test_var.py index 8ff829eac..e9fa40fab 100644 --- a/tests/units/test_var.py +++ b/tests/units/test_var.py @@ -211,7 +211,7 @@ def test_str(prop, expected): @pytest.mark.parametrize( - "prop,expected", + ("prop", "expected"), [ (Var(_js_expr="p", _var_type=int), 0), (Var(_js_expr="p", _var_type=float), 0.0), @@ -223,14 +223,14 @@ def test_str(prop, expected): (Var(_js_expr="p", _var_type=set), set()), ], ) -def test_default_value(prop, expected): +def test_default_value(prop: Var, expected): """Test that the default value of a var is correct. Args: prop: The var to test. expected: The expected default value. """ - assert prop.get_default_value() == expected + assert prop._get_default_value() == expected @pytest.mark.parametrize( @@ -246,14 +246,14 @@ def test_default_value(prop, expected): ], ), ) -def test_get_setter(prop, expected): +def test_get_setter(prop: Var, expected): """Test that the name of the setter function of a var is correct. Args: prop: The var to test. expected: The expected name of the setter function. """ - assert prop.get_setter_name() == expected + assert prop._get_setter_name() == expected @pytest.mark.parametrize( @@ -1302,7 +1302,6 @@ def test_fstring_roundtrip(value): Var(_js_expr="var", _var_type=float).guess_type(), Var(_js_expr="var", _var_type=str).guess_type(), Var(_js_expr="var", _var_type=bool).guess_type(), - Var(_js_expr="var", _var_type=dict).guess_type(), Var(_js_expr="var", _var_type=None).guess_type(), ], ) @@ -1323,10 +1322,10 @@ def test_unsupported_types_for_reverse(var): Var(_js_expr="var", _var_type=int).guess_type(), Var(_js_expr="var", _var_type=float).guess_type(), Var(_js_expr="var", _var_type=bool).guess_type(), - Var(_js_expr="var", _var_type=None).guess_type(), + Var(_js_expr="var", _var_type=type(None)).guess_type(), ], ) -def test_unsupported_types_for_contains(var): +def test_unsupported_types_for_contains(var: Var): """Test that unsupported types for contains throw a type error. Args: From 8fd5c9f2003590a60b7484993b903e1164af75b5 Mon Sep 17 00:00:00 2001 From: benedikt-bartscher <31854409+benedikt-bartscher@users.noreply.github.com> Date: Fri, 8 Nov 2024 00:52:11 +0100 Subject: [PATCH 09/17] improve typing for serializer decorator (#4317) * improve typing for serializer decorator * use wrapped logic * dang it darglint --------- Co-authored-by: Khaleel Al-Adhami --- reflex/utils/serializers.py | 84 ++++++++++++++++++++++--------------- 1 file changed, 51 insertions(+), 33 deletions(-) diff --git a/reflex/utils/serializers.py b/reflex/utils/serializers.py index d3dbb1d4c..b87909aec 100644 --- a/reflex/utils/serializers.py +++ b/reflex/utils/serializers.py @@ -18,6 +18,7 @@ from typing import ( Set, Tuple, Type, + TypeVar, Union, get_type_hints, overload, @@ -32,17 +33,33 @@ from reflex.utils import types SerializedType = Union[str, bool, int, float, list, dict, None] -Serializer = Callable[[Type], SerializedType] +Serializer = Callable[[Any], SerializedType] SERIALIZERS: dict[Type, Serializer] = {} SERIALIZER_TYPES: dict[Type, Type] = {} +SERIALIZED_FUNCTION = TypeVar("SERIALIZED_FUNCTION", bound=Serializer) + + +@overload +def serializer( + fn: None = None, + to: Type[SerializedType] | None = None, +) -> Callable[[SERIALIZED_FUNCTION], SERIALIZED_FUNCTION]: ... + + +@overload +def serializer( + fn: SERIALIZED_FUNCTION, + to: Type[SerializedType] | None = None, +) -> SERIALIZED_FUNCTION: ... + def serializer( - fn: Serializer | None = None, - to: Type | None = None, -) -> Serializer: + fn: SERIALIZED_FUNCTION | None = None, + to: Any = None, +) -> SERIALIZED_FUNCTION | Callable[[SERIALIZED_FUNCTION], SERIALIZED_FUNCTION]: """Decorator to add a serializer for a given type. Args: @@ -51,43 +68,44 @@ def serializer( Returns: The decorated function. - - Raises: - ValueError: If the function does not take a single argument. """ - if fn is None: - # If the function is not provided, return a partial that acts as a decorator. - return functools.partial(serializer, to=to) # type: ignore - # Check the type hints to get the type of the argument. - type_hints = get_type_hints(fn) - args = [arg for arg in type_hints if arg != "return"] + def wrapper(fn: SERIALIZED_FUNCTION) -> SERIALIZED_FUNCTION: + # Check the type hints to get the type of the argument. + type_hints = get_type_hints(fn) + args = [arg for arg in type_hints if arg != "return"] - # Make sure the function takes a single argument. - if len(args) != 1: - raise ValueError("Serializer must take a single argument.") + # Make sure the function takes a single argument. + if len(args) != 1: + raise ValueError("Serializer must take a single argument.") - # Get the type of the argument. - type_ = type_hints[args[0]] + # Get the type of the argument. + type_ = type_hints[args[0]] - # Make sure the type is not already registered. - registered_fn = SERIALIZERS.get(type_) - if registered_fn is not None and registered_fn != fn: - raise ValueError( - f"Serializer for type {type_} is already registered as {registered_fn.__qualname__}." - ) + # Make sure the type is not already registered. + registered_fn = SERIALIZERS.get(type_) + if registered_fn is not None and registered_fn != fn: + raise ValueError( + f"Serializer for type {type_} is already registered as {registered_fn.__qualname__}." + ) - # Apply type transformation if requested - if to is not None or ((to := type_hints.get("return")) is not None): - SERIALIZER_TYPES[type_] = to - get_serializer_type.cache_clear() + to_type = to or type_hints.get("return") - # Register the serializer. - SERIALIZERS[type_] = fn - get_serializer.cache_clear() + # Apply type transformation if requested + if to_type: + SERIALIZER_TYPES[type_] = to_type + get_serializer_type.cache_clear() - # Return the function. - return fn + # Register the serializer. + SERIALIZERS[type_] = fn + get_serializer.cache_clear() + + # Return the function. + return fn + + if fn is not None: + return wrapper(fn) + return wrapper @overload From 227d09a02c4cd61a7885d92613d26c0f971bdf50 Mon Sep 17 00:00:00 2001 From: Masen Furer Date: Thu, 7 Nov 2024 16:01:37 -0800 Subject: [PATCH 10/17] test_exception_handlers: add test case that triggers ErrorBoundary (#4327) --- tests/integration/test_exception_handlers.py | 50 +++++++++++++++++++- 1 file changed, 49 insertions(+), 1 deletion(-) diff --git a/tests/integration/test_exception_handlers.py b/tests/integration/test_exception_handlers.py index e88b462ff..406c21e5d 100644 --- a/tests/integration/test_exception_handlers.py +++ b/tests/integration/test_exception_handlers.py @@ -11,7 +11,7 @@ from selenium.webdriver.remote.webdriver import WebDriver from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.ui import WebDriverWait -from reflex.testing import AppHarness +from reflex.testing import AppHarness, AppHarnessProd def TestApp(): @@ -26,6 +26,8 @@ def TestApp(): class TestAppState(rx.State): """State for the TestApp app.""" + react_error: bool = False + def divide_by_number(self, number: int): """Divide by number and print the result. @@ -50,6 +52,18 @@ def TestApp(): on_click=lambda: TestAppState.divide_by_number(0), # type: ignore id="induce-backend-error-btn", ), + rx.button( + "induce_react_error", + on_click=TestAppState.set_react_error(True), # type: ignore + id="induce-react-error-btn", + ), + rx.box( + rx.cond( + TestAppState.react_error, + rx.Var.create({"invalid": "cannot have object as child"}), + "", + ), + ), ) @@ -152,3 +166,37 @@ def test_backend_exception_handler_during_runtime( "divide_by_number" in captured_default_handler_output.out and "ZeroDivisionError" in captured_default_handler_output.out ) + + +def test_frontend_exception_handler_with_react( + test_app: AppHarness, + driver: WebDriver, + capsys, +): + """Test calling frontend exception handler during runtime. + + Render an object as a react child, which is invalid. + + Args: + test_app: harness for TestApp app + driver: WebDriver instance. + capsys: pytest fixture for capturing stdout and stderr. + + """ + reset_button = WebDriverWait(driver, 20).until( + EC.element_to_be_clickable((By.ID, "induce-react-error-btn")) + ) + + reset_button.click() + + # Wait for the error to be logged + time.sleep(2) + + captured_default_handler_output = capsys.readouterr() + if isinstance(test_app, AppHarnessProd): + assert "Error: Minified React error #31" in captured_default_handler_output.out + else: + assert ( + "Error: Objects are not valid as a React child (found: object with keys \n{invalid})" + in captured_default_handler_output.out + ) From 855a20fd1c1a8009aedbd12ee24dc92e20599fd4 Mon Sep 17 00:00:00 2001 From: Elijah Ahianyo Date: Fri, 8 Nov 2024 00:04:03 +0000 Subject: [PATCH 11/17] [GTM-648]Add Missing Table props (#4322) * Add Missing Table props * add more props --- reflex/components/radix/themes/base.py | 26 ++ reflex/components/radix/themes/base.pyi | 173 +++++++++++ .../radix/themes/components/table.py | 24 +- .../radix/themes/components/table.pyi | 282 +++++++++++++++++- reflex/components/radix/themes/layout/base.py | 25 +- .../components/radix/themes/layout/base.pyi | 130 ++++---- 6 files changed, 566 insertions(+), 94 deletions(-) diff --git a/reflex/components/radix/themes/base.py b/reflex/components/radix/themes/base.py index 20ebdc5a6..7a0fc809f 100644 --- a/reflex/components/radix/themes/base.py +++ b/reflex/components/radix/themes/base.py @@ -5,6 +5,7 @@ from __future__ import annotations from typing import Any, Dict, Literal from reflex.components import Component +from reflex.components.core.breakpoints import Responsive from reflex.components.tags import Tag from reflex.config import get_config from reflex.utils.imports import ImportDict, ImportVar @@ -74,6 +75,31 @@ class CommonMarginProps(Component): ml: Var[LiteralSpacing] +class CommonPaddingProps(Component): + """Many radix-themes elements accept shorthand padding props.""" + + # Padding: "0" - "9" + p: Var[Responsive[LiteralSpacing]] + + # Padding horizontal: "0" - "9" + px: Var[Responsive[LiteralSpacing]] + + # Padding vertical: "0" - "9" + py: Var[Responsive[LiteralSpacing]] + + # Padding top: "0" - "9" + pt: Var[Responsive[LiteralSpacing]] + + # Padding right: "0" - "9" + pr: Var[Responsive[LiteralSpacing]] + + # Padding bottom: "0" - "9" + pb: Var[Responsive[LiteralSpacing]] + + # Padding left: "0" - "9" + pl: Var[Responsive[LiteralSpacing]] + + class RadixLoadingProp(Component): """Base class for components that can be in a loading state.""" diff --git a/reflex/components/radix/themes/base.pyi b/reflex/components/radix/themes/base.pyi index 57cebcbb8..f0698bc2c 100644 --- a/reflex/components/radix/themes/base.pyi +++ b/reflex/components/radix/themes/base.pyi @@ -6,6 +6,7 @@ from typing import Any, Dict, Literal, Optional, Union, overload from reflex.components import Component +from reflex.components.core.breakpoints import Breakpoints from reflex.event import BASE_STATE, EventType from reflex.style import Style from reflex.utils.imports import ImportDict @@ -144,6 +145,178 @@ class CommonMarginProps(Component): """ ... +class CommonPaddingProps(Component): + @overload + @classmethod + def create( # type: ignore + cls, + *children, + p: Optional[ + Union[ + Breakpoints[ + str, Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"] + ], + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + Var[ + Union[ + Breakpoints[ + str, + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + ], + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + ] + ], + ] + ] = None, + px: Optional[ + Union[ + Breakpoints[ + str, Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"] + ], + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + Var[ + Union[ + Breakpoints[ + str, + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + ], + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + ] + ], + ] + ] = None, + py: Optional[ + Union[ + Breakpoints[ + str, Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"] + ], + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + Var[ + Union[ + Breakpoints[ + str, + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + ], + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + ] + ], + ] + ] = None, + pt: Optional[ + Union[ + Breakpoints[ + str, Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"] + ], + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + Var[ + Union[ + Breakpoints[ + str, + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + ], + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + ] + ], + ] + ] = None, + pr: Optional[ + Union[ + Breakpoints[ + str, Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"] + ], + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + Var[ + Union[ + Breakpoints[ + str, + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + ], + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + ] + ], + ] + ] = None, + pb: Optional[ + Union[ + Breakpoints[ + str, Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"] + ], + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + Var[ + Union[ + Breakpoints[ + str, + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + ], + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + ] + ], + ] + ] = None, + pl: Optional[ + Union[ + Breakpoints[ + str, Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"] + ], + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + Var[ + Union[ + Breakpoints[ + str, + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + ], + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + ] + ], + ] + ] = None, + style: Optional[Style] = None, + key: Optional[Any] = None, + id: Optional[Any] = None, + class_name: Optional[Any] = None, + autofocus: Optional[bool] = None, + custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + on_blur: Optional[EventType[[], 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[[], BASE_STATE]] = None, + on_mount: Optional[EventType[[], BASE_STATE]] = None, + on_mouse_down: Optional[EventType[[], BASE_STATE]] = None, + on_mouse_enter: Optional[EventType[[], BASE_STATE]] = None, + on_mouse_leave: Optional[EventType[[], BASE_STATE]] = None, + on_mouse_move: Optional[EventType[[], BASE_STATE]] = None, + on_mouse_out: Optional[EventType[[], BASE_STATE]] = None, + on_mouse_over: Optional[EventType[[], BASE_STATE]] = None, + on_mouse_up: Optional[EventType[[], BASE_STATE]] = None, + on_scroll: Optional[EventType[[], BASE_STATE]] = None, + on_unmount: Optional[EventType[[], BASE_STATE]] = None, + **props, + ) -> "CommonPaddingProps": + """Create the component. + + Args: + *children: The children of the component. + p: Padding: "0" - "9" + px: Padding horizontal: "0" - "9" + py: Padding vertical: "0" - "9" + pt: Padding top: "0" - "9" + pr: Padding right: "0" - "9" + pb: Padding bottom: "0" - "9" + pl: Padding left: "0" - "9" + style: The style of the component. + key: A unique key for the component. + id: The id for the component. + class_name: The class name for the component. + autofocus: Whether the component should take the focus once the page is loaded + custom_attrs: custom attribute + **props: The props of the component. + + Returns: + The component. + """ + ... + class RadixLoadingProp(Component): @overload @classmethod diff --git a/reflex/components/radix/themes/components/table.py b/reflex/components/radix/themes/components/table.py index ce1058db5..a16002f58 100644 --- a/reflex/components/radix/themes/components/table.py +++ b/reflex/components/radix/themes/components/table.py @@ -7,7 +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 CommonPaddingProps, RadixThemesComponent class TableRoot(elements.Table, RadixThemesComponent): @@ -51,6 +51,12 @@ class TableColumnHeaderCell(elements.Th, RadixThemesComponent): # The justification of the column justify: Var[Literal["start", "center", "end"]] + # The minimum width of the cell + min_width: Var[Responsive[str]] + + # The maximum width of the cell + max_width: Var[Responsive[str]] + _invalid_children: List[str] = [ "TableBody", "TableHeader", @@ -76,7 +82,7 @@ class TableBody(elements.Tbody, RadixThemesComponent): _valid_parents: List[str] = ["TableRoot"] -class TableCell(elements.Td, RadixThemesComponent): +class TableCell(elements.Td, CommonPaddingProps, RadixThemesComponent): """A cell containing data.""" tag = "Table.Cell" @@ -84,6 +90,12 @@ class TableCell(elements.Td, RadixThemesComponent): # The justification of the column justify: Var[Literal["start", "center", "end"]] + # The minimum width of the cell + min_width: Var[Responsive[str]] + + # The maximum width of the cell + max_width: Var[Responsive[str]] + _invalid_children: List[str] = [ "TableBody", "TableHeader", @@ -93,7 +105,7 @@ class TableCell(elements.Td, RadixThemesComponent): ] -class TableRowHeaderCell(elements.Th, RadixThemesComponent): +class TableRowHeaderCell(elements.Th, CommonPaddingProps, RadixThemesComponent): """A table cell that is semantically treated as a row header.""" tag = "Table.RowHeaderCell" @@ -101,6 +113,12 @@ class TableRowHeaderCell(elements.Th, RadixThemesComponent): # The justification of the column justify: Var[Literal["start", "center", "end"]] + # The minimum width of the cell + min_width: Var[Responsive[str]] + + # The maximum width of the cell + max_width: Var[Responsive[str]] + _invalid_children: List[str] = [ "TableBody", "TableHeader", diff --git a/reflex/components/radix/themes/components/table.pyi b/reflex/components/radix/themes/components/table.pyi index 822c4b56f..9bc7bf730 100644 --- a/reflex/components/radix/themes/components/table.pyi +++ b/reflex/components/radix/themes/components/table.pyi @@ -12,7 +12,7 @@ from reflex.event import BASE_STATE, EventType from reflex.style import Style from reflex.vars.base import Var -from ..base import RadixThemesComponent +from ..base import CommonPaddingProps, RadixThemesComponent class TableRoot(elements.Table, RadixThemesComponent): @overload @@ -322,6 +322,12 @@ class TableColumnHeaderCell(elements.Th, RadixThemesComponent): Var[Literal["center", "end", "start"]], ] ] = None, + min_width: Optional[ + Union[Breakpoints[str, str], Var[Union[Breakpoints[str, str], str]], str] + ] = None, + max_width: Optional[ + Union[Breakpoints[str, str], Var[Union[Breakpoints[str, str], str]], str] + ] = None, align: Optional[Union[Var[Union[bool, int, str]], bool, int, str]] = None, col_span: Optional[Union[Var[Union[bool, int, str]], bool, int, str]] = None, headers: Optional[Union[Var[Union[bool, int, str]], bool, int, str]] = None, @@ -382,6 +388,8 @@ class TableColumnHeaderCell(elements.Th, RadixThemesComponent): Args: *children: Child components. justify: The justification of the column + min_width: The minimum width of the cell + max_width: The maximum width of the cell align: Alignment of the content within the table header cell col_span: Number of columns a header cell should span headers: IDs of the headers associated with this header cell @@ -507,7 +515,7 @@ class TableBody(elements.Tbody, RadixThemesComponent): """ ... -class TableCell(elements.Td, RadixThemesComponent): +class TableCell(elements.Td, CommonPaddingProps, RadixThemesComponent): @overload @classmethod def create( # type: ignore @@ -519,6 +527,12 @@ class TableCell(elements.Td, RadixThemesComponent): Var[Literal["center", "end", "start"]], ] ] = None, + min_width: Optional[ + Union[Breakpoints[str, str], Var[Union[Breakpoints[str, str], str]], str] + ] = None, + max_width: Optional[ + Union[Breakpoints[str, str], Var[Union[Breakpoints[str, str], str]], str] + ] = None, align: Optional[Union[Var[Union[bool, int, str]], bool, int, str]] = None, col_span: Optional[Union[Var[Union[bool, int, str]], bool, int, str]] = None, headers: Optional[Union[Var[Union[bool, int, str]], bool, int, str]] = None, @@ -547,6 +561,125 @@ class TableCell(elements.Td, RadixThemesComponent): spell_check: Optional[Union[Var[Union[bool, int, str]], bool, int, str]] = None, tab_index: Optional[Union[Var[Union[bool, int, str]], bool, int, str]] = None, title: Optional[Union[Var[Union[bool, int, str]], bool, int, str]] = None, + p: Optional[ + Union[ + Breakpoints[ + str, Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"] + ], + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + Var[ + Union[ + Breakpoints[ + str, + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + ], + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + ] + ], + ] + ] = None, + px: Optional[ + Union[ + Breakpoints[ + str, Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"] + ], + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + Var[ + Union[ + Breakpoints[ + str, + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + ], + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + ] + ], + ] + ] = None, + py: Optional[ + Union[ + Breakpoints[ + str, Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"] + ], + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + Var[ + Union[ + Breakpoints[ + str, + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + ], + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + ] + ], + ] + ] = None, + pt: Optional[ + Union[ + Breakpoints[ + str, Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"] + ], + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + Var[ + Union[ + Breakpoints[ + str, + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + ], + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + ] + ], + ] + ] = None, + pr: Optional[ + Union[ + Breakpoints[ + str, Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"] + ], + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + Var[ + Union[ + Breakpoints[ + str, + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + ], + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + ] + ], + ] + ] = None, + pb: Optional[ + Union[ + Breakpoints[ + str, Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"] + ], + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + Var[ + Union[ + Breakpoints[ + str, + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + ], + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + ] + ], + ] + ] = None, + pl: Optional[ + Union[ + Breakpoints[ + str, Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"] + ], + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + Var[ + Union[ + Breakpoints[ + str, + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + ], + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + ] + ], + ] + ] = None, style: Optional[Style] = None, key: Optional[Any] = None, id: Optional[Any] = None, @@ -578,6 +711,8 @@ class TableCell(elements.Td, RadixThemesComponent): Args: *children: Child components. justify: The justification of the column + min_width: The minimum width of the cell + max_width: The maximum width of the cell align: Alignment of the content within the table cell col_span: Number of columns a cell should span headers: IDs of the headers associated with this cell @@ -598,6 +733,13 @@ class TableCell(elements.Td, RadixThemesComponent): spell_check: Defines whether the element may be checked for spelling errors. tab_index: Defines the position of the current element in the tabbing order. title: Defines a tooltip for the element. + p: Padding: "0" - "9" + px: Padding horizontal: "0" - "9" + py: Padding vertical: "0" - "9" + pt: Padding top: "0" - "9" + pr: Padding right: "0" - "9" + pb: Padding bottom: "0" - "9" + pl: Padding left: "0" - "9" style: The style of the component. key: A unique key for the component. id: The id for the component. @@ -611,7 +753,7 @@ class TableCell(elements.Td, RadixThemesComponent): """ ... -class TableRowHeaderCell(elements.Th, RadixThemesComponent): +class TableRowHeaderCell(elements.Th, CommonPaddingProps, RadixThemesComponent): @overload @classmethod def create( # type: ignore @@ -623,6 +765,12 @@ class TableRowHeaderCell(elements.Th, RadixThemesComponent): Var[Literal["center", "end", "start"]], ] ] = None, + min_width: Optional[ + Union[Breakpoints[str, str], Var[Union[Breakpoints[str, str], str]], str] + ] = None, + max_width: Optional[ + Union[Breakpoints[str, str], Var[Union[Breakpoints[str, str], str]], str] + ] = None, align: Optional[Union[Var[Union[bool, int, str]], bool, int, str]] = None, col_span: Optional[Union[Var[Union[bool, int, str]], bool, int, str]] = None, headers: Optional[Union[Var[Union[bool, int, str]], bool, int, str]] = None, @@ -652,6 +800,125 @@ class TableRowHeaderCell(elements.Th, RadixThemesComponent): spell_check: Optional[Union[Var[Union[bool, int, str]], bool, int, str]] = None, tab_index: Optional[Union[Var[Union[bool, int, str]], bool, int, str]] = None, title: Optional[Union[Var[Union[bool, int, str]], bool, int, str]] = None, + p: Optional[ + Union[ + Breakpoints[ + str, Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"] + ], + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + Var[ + Union[ + Breakpoints[ + str, + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + ], + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + ] + ], + ] + ] = None, + px: Optional[ + Union[ + Breakpoints[ + str, Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"] + ], + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + Var[ + Union[ + Breakpoints[ + str, + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + ], + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + ] + ], + ] + ] = None, + py: Optional[ + Union[ + Breakpoints[ + str, Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"] + ], + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + Var[ + Union[ + Breakpoints[ + str, + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + ], + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + ] + ], + ] + ] = None, + pt: Optional[ + Union[ + Breakpoints[ + str, Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"] + ], + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + Var[ + Union[ + Breakpoints[ + str, + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + ], + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + ] + ], + ] + ] = None, + pr: Optional[ + Union[ + Breakpoints[ + str, Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"] + ], + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + Var[ + Union[ + Breakpoints[ + str, + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + ], + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + ] + ], + ] + ] = None, + pb: Optional[ + Union[ + Breakpoints[ + str, Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"] + ], + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + Var[ + Union[ + Breakpoints[ + str, + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + ], + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + ] + ], + ] + ] = None, + pl: Optional[ + Union[ + Breakpoints[ + str, Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"] + ], + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + Var[ + Union[ + Breakpoints[ + str, + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + ], + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + ] + ], + ] + ] = None, style: Optional[Style] = None, key: Optional[Any] = None, id: Optional[Any] = None, @@ -683,6 +950,8 @@ class TableRowHeaderCell(elements.Th, RadixThemesComponent): Args: *children: Child components. justify: The justification of the column + min_width: The minimum width of the cell + max_width: The maximum width of the cell align: Alignment of the content within the table header cell col_span: Number of columns a header cell should span headers: IDs of the headers associated with this header cell @@ -704,6 +973,13 @@ class TableRowHeaderCell(elements.Th, RadixThemesComponent): spell_check: Defines whether the element may be checked for spelling errors. tab_index: Defines the position of the current element in the tabbing order. title: Defines a tooltip for the element. + p: Padding: "0" - "9" + px: Padding horizontal: "0" - "9" + py: Padding vertical: "0" - "9" + pt: Padding top: "0" - "9" + pr: Padding right: "0" - "9" + pb: Padding bottom: "0" - "9" + pl: Padding left: "0" - "9" style: The style of the component. key: A unique key for the component. id: The id for the component. diff --git a/reflex/components/radix/themes/layout/base.py b/reflex/components/radix/themes/layout/base.py index 61ba19710..f31f6a72c 100644 --- a/reflex/components/radix/themes/layout/base.py +++ b/reflex/components/radix/themes/layout/base.py @@ -7,38 +7,17 @@ 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, CommonPaddingProps, RadixThemesComponent LiteralBoolNumber = Literal["0", "1"] -class LayoutComponent(CommonMarginProps, RadixThemesComponent): +class LayoutComponent(CommonMarginProps, CommonPaddingProps, RadixThemesComponent): """Box, Flex and Grid are foundational elements you'll use to construct layouts. Box provides block-level spacing and sizing, while Flex and Grid let you create flexible columns, rows and grids. """ - # Padding: "0" - "9" - p: Var[Responsive[LiteralSpacing]] - - # Padding horizontal: "0" - "9" - px: Var[Responsive[LiteralSpacing]] - - # Padding vertical: "0" - "9" - py: Var[Responsive[LiteralSpacing]] - - # Padding top: "0" - "9" - pt: Var[Responsive[LiteralSpacing]] - - # Padding right: "0" - "9" - pr: Var[Responsive[LiteralSpacing]] - - # Padding bottom: "0" - "9" - pb: Var[Responsive[LiteralSpacing]] - - # Padding left: "0" - "9" - pl: Var[Responsive[LiteralSpacing]] - # Whether the element will take up the smallest possible space: "0" | "1" flex_shrink: Var[Responsive[LiteralBoolNumber]] diff --git a/reflex/components/radix/themes/layout/base.pyi b/reflex/components/radix/themes/layout/base.pyi index 3dc46492f..440ec882a 100644 --- a/reflex/components/radix/themes/layout/base.pyi +++ b/reflex/components/radix/themes/layout/base.pyi @@ -10,16 +10,72 @@ from reflex.event import BASE_STATE, EventType from reflex.style import Style from reflex.vars.base import Var -from ..base import CommonMarginProps, RadixThemesComponent +from ..base import CommonMarginProps, CommonPaddingProps, RadixThemesComponent LiteralBoolNumber = Literal["0", "1"] -class LayoutComponent(CommonMarginProps, RadixThemesComponent): +class LayoutComponent(CommonMarginProps, CommonPaddingProps, RadixThemesComponent): @overload @classmethod def create( # type: ignore cls, *children, + flex_shrink: Optional[ + Union[ + Breakpoints[str, Literal["0", "1"]], + Literal["0", "1"], + Var[Union[Breakpoints[str, Literal["0", "1"]], Literal["0", "1"]]], + ] + ] = None, + flex_grow: Optional[ + Union[ + Breakpoints[str, Literal["0", "1"]], + Literal["0", "1"], + Var[Union[Breakpoints[str, Literal["0", "1"]], Literal["0", "1"]]], + ] + ] = None, + m: Optional[ + Union[ + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + Var[Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]], + ] + ] = None, + mx: Optional[ + Union[ + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + Var[Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]], + ] + ] = None, + my: Optional[ + Union[ + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + Var[Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]], + ] + ] = None, + mt: Optional[ + Union[ + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + Var[Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]], + ] + ] = None, + mr: Optional[ + Union[ + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + Var[Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]], + ] + ] = None, + mb: Optional[ + Union[ + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + Var[Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]], + ] + ] = None, + ml: Optional[ + Union[ + Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + Var[Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]], + ] + ] = None, p: Optional[ Union[ Breakpoints[ @@ -139,62 +195,6 @@ class LayoutComponent(CommonMarginProps, RadixThemesComponent): ], ] ] = None, - flex_shrink: Optional[ - Union[ - Breakpoints[str, Literal["0", "1"]], - Literal["0", "1"], - Var[Union[Breakpoints[str, Literal["0", "1"]], Literal["0", "1"]]], - ] - ] = None, - flex_grow: Optional[ - Union[ - Breakpoints[str, Literal["0", "1"]], - Literal["0", "1"], - Var[Union[Breakpoints[str, Literal["0", "1"]], Literal["0", "1"]]], - ] - ] = None, - m: Optional[ - Union[ - Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], - Var[Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]], - ] - ] = None, - mx: Optional[ - Union[ - Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], - Var[Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]], - ] - ] = None, - my: Optional[ - Union[ - Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], - Var[Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]], - ] - ] = None, - mt: Optional[ - Union[ - Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], - Var[Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]], - ] - ] = None, - mr: Optional[ - Union[ - Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], - Var[Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]], - ] - ] = None, - mb: Optional[ - Union[ - Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], - Var[Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]], - ] - ] = None, - ml: Optional[ - Union[ - Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], - Var[Literal["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]], - ] - ] = None, style: Optional[Style] = None, key: Optional[Any] = None, id: Optional[Any] = None, @@ -225,13 +225,6 @@ class LayoutComponent(CommonMarginProps, RadixThemesComponent): Args: *children: Child components. - p: Padding: "0" - "9" - px: Padding horizontal: "0" - "9" - py: Padding vertical: "0" - "9" - pt: Padding top: "0" - "9" - pr: Padding right: "0" - "9" - pb: Padding bottom: "0" - "9" - pl: Padding left: "0" - "9" flex_shrink: Whether the element will take up the smallest possible space: "0" | "1" flex_grow: Whether the element will take up the largest possible space: "0" | "1" m: Margin: "0" - "9" @@ -241,6 +234,13 @@ class LayoutComponent(CommonMarginProps, RadixThemesComponent): mr: Margin right: "0" - "9" mb: Margin bottom: "0" - "9" ml: Margin left: "0" - "9" + p: Padding: "0" - "9" + px: Padding horizontal: "0" - "9" + py: Padding vertical: "0" - "9" + pt: Padding top: "0" - "9" + pr: Padding right: "0" - "9" + pb: Padding bottom: "0" - "9" + pl: Padding left: "0" - "9" style: The style of the component. key: A unique key for the component. id: The id for the component. From 2ee2d5203597fb3110e13194fde8429f210db229 Mon Sep 17 00:00:00 2001 From: Masen Furer Date: Thu, 7 Nov 2024 16:18:28 -0800 Subject: [PATCH 12/17] Fix pyi file merged after `custom_attrs` type change (#4330) --- reflex/components/radix/themes/base.pyi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reflex/components/radix/themes/base.pyi b/reflex/components/radix/themes/base.pyi index f0698bc2c..b0a8e2fcb 100644 --- a/reflex/components/radix/themes/base.pyi +++ b/reflex/components/radix/themes/base.pyi @@ -275,7 +275,7 @@ class CommonPaddingProps(Component): id: Optional[Any] = None, class_name: Optional[Any] = None, autofocus: Optional[bool] = None, - custom_attrs: Optional[Dict[str, Union[Var, str]]] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, on_blur: Optional[EventType[[], BASE_STATE]] = None, on_click: Optional[EventType[[], BASE_STATE]] = None, on_context_menu: Optional[EventType[[], BASE_STATE]] = None, From 4c4c59bf0444b4b8a174d615eeefdd95f651955f Mon Sep 17 00:00:00 2001 From: Khaleel Al-Adhami Date: Thu, 7 Nov 2024 16:33:42 -0800 Subject: [PATCH 13/17] convert event return types to type hints (#4331) --- reflex/state.py | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/reflex/state.py b/reflex/state.py index 56c62c150..66b1e3cab 100644 --- a/reflex/state.py +++ b/reflex/state.py @@ -11,6 +11,7 @@ import inspect import json import pickle import sys +import typing import uuid from abc import ABC, abstractmethod from collections import defaultdict @@ -90,7 +91,13 @@ from reflex.utils.exceptions import ( ) from reflex.utils.exec import is_testing_env from reflex.utils.serializers import serializer -from reflex.utils.types import _isinstance, get_origin, override +from reflex.utils.types import ( + _isinstance, + get_origin, + is_union, + override, + value_inside_optional, +) from reflex.vars import VarData if TYPE_CHECKING: @@ -1713,6 +1720,35 @@ class BaseState(Base, ABC, extra=pydantic.Extra.allow): # Get the function to process the event. fn = functools.partial(handler.fn, state) + try: + type_hints = typing.get_type_hints(handler.fn) + except Exception: + type_hints = {} + + for arg, value in list(payload.items()): + hinted_args = type_hints.get(arg, Any) + if hinted_args is Any: + continue + if is_union(hinted_args): + if value is None: + continue + hinted_args = value_inside_optional(hinted_args) + if ( + isinstance(value, dict) + and inspect.isclass(hinted_args) + and ( + dataclasses.is_dataclass(hinted_args) + or issubclass(hinted_args, Base) + ) + ): + payload[arg] = hinted_args(**value) + if isinstance(value, list) and (hinted_args is set or hinted_args is Set): + payload[arg] = set(value) + if isinstance(value, list) and ( + hinted_args is tuple or hinted_args is Tuple + ): + payload[arg] = tuple(value) + # Wrap the function in a try/except block. try: # Handle async functions. From a454b705a81936eea9f88de220fb48dc0dcc042d Mon Sep 17 00:00:00 2001 From: Khaleel Al-Adhami Date: Thu, 7 Nov 2024 19:17:07 -0800 Subject: [PATCH 14/17] fix imports with alias from $ (#4332) --- reflex/components/dynamic.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/reflex/components/dynamic.py b/reflex/components/dynamic.py index c0e172224..ce59c3f30 100644 --- a/reflex/components/dynamic.py +++ b/reflex/components/dynamic.py @@ -111,9 +111,9 @@ def load_dynamic_serializer(): if line.startswith("import "): if 'from "$/' in line or 'from "/' in line: module_code_lines[ix] = ( - line.replace("import ", "const ", 1).replace( - " from ", " = window['__reflex'][", 1 - ) + line.replace("import ", "const ", 1) + .replace(" as ", ": ") + .replace(" from ", " = window['__reflex'][", 1) + "]" ) else: From 3d85936009d5956c5d711d90f0b94801748f37bc Mon Sep 17 00:00:00 2001 From: Simon Young <40179067+Kastier1@users.noreply.github.com> Date: Thu, 7 Nov 2024 19:17:55 -0800 Subject: [PATCH 15/17] update cli version (#4333) Co-authored-by: simon --- poetry.lock | 14 +++++++------- pyproject.toml | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/poetry.lock b/poetry.lock index 0fd0f7109..9d80c8693 100644 --- a/poetry.lock +++ b/poetry.lock @@ -2198,13 +2198,13 @@ reflex = ">=0.6.0a" [[package]] name = "reflex-hosting-cli" -version = "0.1.14" +version = "0.1.15" description = "Reflex Hosting CLI" optional = false python-versions = "<4.0,>=3.8" files = [ - {file = "reflex_hosting_cli-0.1.14-py3-none-any.whl", hash = "sha256:b38676a39708511801bd666e5a9788d8eb4aeb6f9196bea77a8c4c6a6c06492f"}, - {file = "reflex_hosting_cli-0.1.14.tar.gz", hash = "sha256:8c7721b87dd2ce22db110d905ee01e78e5185f0e6dd521752f70aef6cf17b39f"}, + {file = "reflex_hosting_cli-0.1.15-py3-none-any.whl", hash = "sha256:c471f5570b8797e290844edcc079241aa27457112c01188dc0f8a5ccc2364003"}, + {file = "reflex_hosting_cli-0.1.15.tar.gz", hash = "sha256:42a2a030b8bfba728cbd2c5cc37df0fcc8c2966efc649c57806c6616efb994c4"}, ] [package.dependencies] @@ -2714,13 +2714,13 @@ urllib3 = ">=1.26.0" [[package]] name = "typer" -version = "0.12.5" +version = "0.13.0" description = "Typer, build great CLIs. Easy to code. Based on Python type hints." optional = false python-versions = ">=3.7" files = [ - {file = "typer-0.12.5-py3-none-any.whl", hash = "sha256:62fe4e471711b147e3365034133904df3e235698399bc4de2b36c8579298d52b"}, - {file = "typer-0.12.5.tar.gz", hash = "sha256:f592f089bedcc8ec1b974125d64851029c3b1af145f04aca64d69410f0c9b722"}, + {file = "typer-0.13.0-py3-none-any.whl", hash = "sha256:d85fe0b777b2517cc99c8055ed735452f2659cd45e451507c76f48ce5c1d00e2"}, + {file = "typer-0.13.0.tar.gz", hash = "sha256:f1c7198347939361eec90139ffa0fd8b3df3a2259d5852a0f7400e476d95985c"}, ] [package.dependencies] @@ -3050,4 +3050,4 @@ type = ["pytest-mypy"] [metadata] lock-version = "2.0" python-versions = "^3.9" -content-hash = "fe91a9b22081a48be519ed3789e40904bd358a05fd6da912566592aa8d382f31" +content-hash = "593a52e9f54e95b50074f1bc4b7cdbabe4fab325051c72b23219268c0c9aa3ba" diff --git a/pyproject.toml b/pyproject.toml index 9e8edb0e9..1e48daf1c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -49,7 +49,7 @@ wrapt = [ {version = ">=1.11.0,<2.0", python = "<3.11"}, ] packaging = ">=23.1,<25.0" -reflex-hosting-cli = ">=0.1.4,<2.0" +reflex-hosting-cli = ">=0.1.5,<2.0" charset-normalizer = ">=3.3.2,<4.0" wheel = ">=0.42.0,<1.0" build = ">=1.0.3,<2.0" From cd59ab54064ed95b1ee7327fa8e671984b04ca95 Mon Sep 17 00:00:00 2001 From: Elijah Ahianyo Date: Fri, 8 Nov 2024 03:18:14 +0000 Subject: [PATCH 16/17] [ENG-4010]Codeblock cleanup in markdown (#4233) * Codeblock cleanup in markdown * Initial approach to getting this working with rx.memo and reflex web * abstract the map var logic * the tests are not valid + pyright fix * darglint fix * Add unit tests plus mix components * pyi run * rebase on main * fix darglint * testing different OS * revert * This should fix it. Right? * Fix tests * minor fn signature fix * use ArgsFunctionOperation * use destructured args and pass the tests * fix remaining unit tests * fix pyi files * rebase on main * move language regex on codeblock to markdown * fix tests --------- Co-authored-by: Khaleel Al-Adhami --- .../web/pages/custom_component.js.jinja2 | 14 -- reflex/components/datadisplay/code.py | 82 ++++--- reflex/components/datadisplay/code.pyi | 8 +- .../datadisplay/shiki_code_block.py | 3 +- .../datadisplay/shiki_code_block.pyi | 3 +- reflex/components/markdown/markdown.py | 229 ++++++++++++++---- reflex/components/markdown/markdown.pyi | 21 +- reflex/components/radix/themes/layout/list.py | 5 +- .../components/radix/themes/layout/list.pyi | 5 +- .../radix/themes/typography/code.py | 3 +- .../radix/themes/typography/code.pyi | 3 +- .../radix/themes/typography/heading.py | 3 +- .../radix/themes/typography/heading.pyi | 3 +- .../radix/themes/typography/link.py | 3 +- .../radix/themes/typography/link.pyi | 3 +- .../radix/themes/typography/text.py | 3 +- .../radix/themes/typography/text.pyi | 3 +- reflex/event.py | 3 +- reflex/vars/function.py | 63 ++++- tests/units/components/base/test_script.py | 6 +- .../units/components/datadisplay/test_code.py | 19 -- tests/units/components/markdown/__init__.py | 0 .../components/markdown/test_markdown.py | 190 +++++++++++++++ tests/units/components/test_component.py | 4 +- tests/units/test_event.py | 12 +- tests/units/test_var.py | 28 ++- tests/units/utils/test_format.py | 10 +- 27 files changed, 565 insertions(+), 164 deletions(-) create mode 100644 tests/units/components/markdown/__init__.py create mode 100644 tests/units/components/markdown/test_markdown.py diff --git a/reflex/.templates/jinja/web/pages/custom_component.js.jinja2 b/reflex/.templates/jinja/web/pages/custom_component.js.jinja2 index 210246992..222524d2d 100644 --- a/reflex/.templates/jinja/web/pages/custom_component.js.jinja2 +++ b/reflex/.templates/jinja/web/pages/custom_component.js.jinja2 @@ -8,20 +8,6 @@ {% endfor %} export const {{component.name}} = memo(({ {{-component.props|join(", ")-}} }) => { -{% if component.name == "CodeBlock" and "language" in component.props %} - if (language) { - (async () => { - try { - const module = await import(`react-syntax-highlighter/dist/cjs/languages/prism/${language}`); - SyntaxHighlighter.registerLanguage(language, module.default); - } catch (error) { - console.error(`Error importing language module for ${language}:`, error); - } - })(); - - - } -{% endif %} {% for hook in component.hooks %} {{ hook }} {% endfor %} diff --git a/reflex/components/datadisplay/code.py b/reflex/components/datadisplay/code.py index 53761284a..9d5052df1 100644 --- a/reflex/components/datadisplay/code.py +++ b/reflex/components/datadisplay/code.py @@ -8,13 +8,14 @@ from typing import ClassVar, Dict, Literal, Optional, Union from reflex.components.component import Component, ComponentNamespace from reflex.components.core.cond import color_mode_cond from reflex.components.lucide.icon import Icon +from reflex.components.markdown.markdown import _LANGUAGE, MarkdownComponentMap from reflex.components.radix.themes.components.button import Button from reflex.components.radix.themes.layout.box import Box from reflex.constants.colors import Color from reflex.event import set_clipboard from reflex.style import Style from reflex.utils import console, format -from reflex.utils.imports import ImportDict, ImportVar +from reflex.utils.imports import ImportVar from reflex.vars.base import LiteralVar, Var, VarData LiteralCodeLanguage = Literal[ @@ -378,7 +379,7 @@ for theme_name in dir(Theme): setattr(Theme, theme_name, getattr(Theme, theme_name)._replace(_var_type=Theme)) -class CodeBlock(Component): +class CodeBlock(Component, MarkdownComponentMap): """A code block.""" library = "react-syntax-highlighter@15.6.1" @@ -417,39 +418,6 @@ class CodeBlock(Component): # A custom copy button to override the default one. copy_button: Optional[Union[bool, Component]] = None - def add_imports(self) -> ImportDict: - """Add imports for the CodeBlock component. - - Returns: - The import dict. - """ - imports_: ImportDict = {} - - if ( - self.language is not None - and (language_without_quotes := str(self.language).replace('"', "")) - in LiteralCodeLanguage.__args__ # type: ignore - ): - imports_[ - f"react-syntax-highlighter/dist/cjs/languages/prism/{language_without_quotes}" - ] = [ - ImportVar( - tag=format.to_camel_case(language_without_quotes), - is_default=True, - install=False, - ) - ] - - return imports_ - - def _get_custom_code(self) -> Optional[str]: - if ( - self.language is not None - and (language_without_quotes := str(self.language).replace('"', "")) - in LiteralCodeLanguage.__args__ # type: ignore - ): - return f"{self.alias}.registerLanguage('{language_without_quotes}', {format.to_camel_case(language_without_quotes)})" - @classmethod def create( cls, @@ -534,8 +502,8 @@ class CodeBlock(Component): theme = self.theme - out.add_props(style=theme).remove_props("theme", "code").add_props( - children=self.code + out.add_props(style=theme).remove_props("theme", "code", "language").add_props( + children=self.code, language=_LANGUAGE ) return out @@ -543,6 +511,46 @@ class CodeBlock(Component): def _exclude_props(self) -> list[str]: return ["can_copy", "copy_button"] + @classmethod + def _get_language_registration_hook(cls) -> str: + """Get the hook to register the language. + + Returns: + The hook to register the language. + """ + return f""" + if ({str(_LANGUAGE)}) {{ + (async () => {{ + try {{ + const module = await import(`react-syntax-highlighter/dist/cjs/languages/prism/${{{str(_LANGUAGE)}}}`); + SyntaxHighlighter.registerLanguage({str(_LANGUAGE)}, module.default); + }} catch (error) {{ + console.error(`Error importing language module for ${{{str(_LANGUAGE)}}}:`, error); + }} + }})(); + }} +""" + + @classmethod + def get_component_map_custom_code(cls) -> str: + """Get the custom code for the component. + + Returns: + The custom code for the component. + """ + return cls._get_language_registration_hook() + + def add_hooks(self) -> list[str | Var]: + """Add hooks for the component. + + Returns: + The hooks for the component. + """ + return [ + f"const {str(_LANGUAGE)} = {str(self.language)}", + self._get_language_registration_hook(), + ] + class CodeblockNamespace(ComponentNamespace): """Namespace for the CodeBlock component.""" diff --git a/reflex/components/datadisplay/code.pyi b/reflex/components/datadisplay/code.pyi index 765ae47f3..da89195ce 100644 --- a/reflex/components/datadisplay/code.pyi +++ b/reflex/components/datadisplay/code.pyi @@ -7,10 +7,10 @@ import dataclasses from typing import Any, ClassVar, Dict, Literal, Optional, Union, overload from reflex.components.component import Component, ComponentNamespace +from reflex.components.markdown.markdown import MarkdownComponentMap from reflex.constants.colors import Color from reflex.event import BASE_STATE, EventType from reflex.style import Style -from reflex.utils.imports import ImportDict from reflex.vars.base import Var LiteralCodeLanguage = Literal[ @@ -349,8 +349,7 @@ for theme_name in dir(Theme): continue setattr(Theme, theme_name, getattr(Theme, theme_name)._replace(_var_type=Theme)) -class CodeBlock(Component): - def add_imports(self) -> ImportDict: ... +class CodeBlock(Component, MarkdownComponentMap): @overload @classmethod def create( # type: ignore @@ -984,6 +983,9 @@ class CodeBlock(Component): ... def add_style(self): ... + @classmethod + def get_component_map_custom_code(cls) -> str: ... + def add_hooks(self) -> list[str | Var]: ... class CodeblockNamespace(ComponentNamespace): themes = Theme diff --git a/reflex/components/datadisplay/shiki_code_block.py b/reflex/components/datadisplay/shiki_code_block.py index 4a3e05d0e..2b4e1f506 100644 --- a/reflex/components/datadisplay/shiki_code_block.py +++ b/reflex/components/datadisplay/shiki_code_block.py @@ -12,6 +12,7 @@ from reflex.components.core.colors import color from reflex.components.core.cond import color_mode_cond from reflex.components.el.elements.forms import Button from reflex.components.lucide.icon import Icon +from reflex.components.markdown.markdown import MarkdownComponentMap from reflex.components.props import NoExtrasAllowedProps from reflex.components.radix.themes.layout.box import Box from reflex.event import run_script, set_clipboard @@ -528,7 +529,7 @@ class ShikiJsTransformer(ShikiBaseTransformers): super().__init__(**kwargs) -class ShikiCodeBlock(Component): +class ShikiCodeBlock(Component, MarkdownComponentMap): """A Code block.""" library = "/components/shiki/code" diff --git a/reflex/components/datadisplay/shiki_code_block.pyi b/reflex/components/datadisplay/shiki_code_block.pyi index 2b8b0d385..92546ee4f 100644 --- a/reflex/components/datadisplay/shiki_code_block.pyi +++ b/reflex/components/datadisplay/shiki_code_block.pyi @@ -7,6 +7,7 @@ from typing import Any, Dict, Literal, Optional, Union, overload from reflex.base import Base from reflex.components.component import Component, ComponentNamespace +from reflex.components.markdown.markdown import MarkdownComponentMap from reflex.components.props import NoExtrasAllowedProps from reflex.event import BASE_STATE, EventType from reflex.style import Style @@ -350,7 +351,7 @@ class ShikiJsTransformer(ShikiBaseTransformers): fns: list[FunctionStringVar] style: Optional[Style] -class ShikiCodeBlock(Component): +class ShikiCodeBlock(Component, MarkdownComponentMap): @overload @classmethod def create( # type: ignore diff --git a/reflex/components/markdown/markdown.py b/reflex/components/markdown/markdown.py index b790bf7a1..376cb8bd6 100644 --- a/reflex/components/markdown/markdown.py +++ b/reflex/components/markdown/markdown.py @@ -2,25 +2,18 @@ from __future__ import annotations +import dataclasses import textwrap from functools import lru_cache from hashlib import md5 -from typing import Any, Callable, Dict, Union +from typing import Any, Callable, Dict, Sequence, Union from reflex.components.component import Component, CustomComponent -from reflex.components.radix.themes.layout.list import ( - ListItem, - OrderedList, - UnorderedList, -) -from reflex.components.radix.themes.typography.heading import Heading -from reflex.components.radix.themes.typography.link import Link -from reflex.components.radix.themes.typography.text import Text from reflex.components.tags.tag import Tag from reflex.utils import types from reflex.utils.imports import ImportDict, ImportVar from reflex.vars.base import LiteralVar, Var -from reflex.vars.function import ARRAY_ISARRAY +from reflex.vars.function import ARRAY_ISARRAY, ArgsFunctionOperation, DestructuredArg from reflex.vars.number import ternary_operation # Special vars used in the component map. @@ -28,6 +21,7 @@ _CHILDREN = Var(_js_expr="children", _var_type=str) _PROPS = Var(_js_expr="...props") _PROPS_IN_TAG = Var(_js_expr="{...props}") _MOCK_ARG = Var(_js_expr="", _var_type=str) +_LANGUAGE = Var(_js_expr="_language", _var_type=str) # Special remark plugins. _REMARK_MATH = Var(_js_expr="remarkMath") @@ -53,7 +47,15 @@ def get_base_component_map() -> dict[str, Callable]: The base component map. """ from reflex.components.datadisplay.code import CodeBlock + from reflex.components.radix.themes.layout.list import ( + ListItem, + OrderedList, + UnorderedList, + ) from reflex.components.radix.themes.typography.code import Code + from reflex.components.radix.themes.typography.heading import Heading + from reflex.components.radix.themes.typography.link import Link + from reflex.components.radix.themes.typography.text import Text return { "h1": lambda value: Heading.create(value, as_="h1", size="6", margin_y="0.5em"), @@ -74,6 +76,67 @@ def get_base_component_map() -> dict[str, Callable]: } +@dataclasses.dataclass() +class MarkdownComponentMap: + """Mixin class for handling custom component maps in Markdown components.""" + + _explicit_return: bool = dataclasses.field(default=False) + + @classmethod + def get_component_map_custom_code(cls) -> str: + """Get the custom code for the component map. + + Returns: + The custom code for the component map. + """ + return "" + + @classmethod + def create_map_fn_var( + cls, + fn_body: Var | None = None, + fn_args: Sequence[str] | None = None, + explicit_return: bool | None = None, + ) -> Var: + """Create a function Var for the component map. + + Args: + fn_body: The formatted component as a string. + fn_args: The function arguments. + explicit_return: Whether to use explicit return syntax. + + Returns: + The function Var for the component map. + """ + fn_args = fn_args or cls.get_fn_args() + fn_body = fn_body if fn_body is not None else cls.get_fn_body() + explicit_return = explicit_return or cls._explicit_return + + return ArgsFunctionOperation.create( + args_names=(DestructuredArg(fields=tuple(fn_args)),), + return_expr=fn_body, + explicit_return=explicit_return, + ) + + @classmethod + def get_fn_args(cls) -> Sequence[str]: + """Get the function arguments for the component map. + + Returns: + The function arguments as a list of strings. + """ + return ["node", _CHILDREN._js_expr, _PROPS._js_expr] + + @classmethod + def get_fn_body(cls) -> Var: + """Get the function body for the component map. + + Returns: + The function body as a string. + """ + return Var(_js_expr="undefined", _var_type=None) + + class Markdown(Component): """A markdown component.""" @@ -153,9 +216,6 @@ class Markdown(Component): Returns: The imports for the markdown component. """ - from reflex.components.datadisplay.code import CodeBlock, Theme - from reflex.components.radix.themes.typography.code import Code - return [ { "": "katex/dist/katex.min.css", @@ -179,10 +239,71 @@ class Markdown(Component): component(_MOCK_ARG)._get_all_imports() # type: ignore for component in self.component_map.values() ], - CodeBlock.create(theme=Theme.light)._get_imports(), - Code.create()._get_imports(), ] + def _get_tag_map_fn_var(self, tag: str) -> Var: + return self._get_map_fn_var_from_children(self.get_component(tag), tag) + + def format_component_map(self) -> dict[str, Var]: + """Format the component map for rendering. + + Returns: + The formatted component map. + """ + components = { + tag: self._get_tag_map_fn_var(tag) + for tag in self.component_map + if tag not in ("code", "codeblock") + } + + # Separate out inline code and code blocks. + components["code"] = self._get_inline_code_fn_var() + + return components + + def _get_inline_code_fn_var(self) -> Var: + """Get the function variable for inline code. + + This function creates a Var that represents a function to handle + both inline code and code blocks in markdown. + + Returns: + The Var for inline code. + """ + # Get any custom code from the codeblock and code components. + custom_code_list = self._get_map_fn_custom_code_from_children( + self.get_component("codeblock") + ) + custom_code_list.extend( + self._get_map_fn_custom_code_from_children(self.get_component("code")) + ) + + codeblock_custom_code = "\n".join(custom_code_list) + + # Format the code to handle inline and block code. + formatted_code = f""" +const match = (className || '').match(/language-(?.*)/); +const {str(_LANGUAGE)} = match ? match[1] : ''; +{codeblock_custom_code}; + return inline ? ( + {self.format_component("code")} + ) : ( + {self.format_component("codeblock", language=_LANGUAGE)} + ); + """.replace("\n", " ") + + return MarkdownComponentMap.create_map_fn_var( + fn_args=( + "node", + "inline", + "className", + _CHILDREN._js_expr, + _PROPS._js_expr, + ), + fn_body=Var(_js_expr=formatted_code), + explicit_return=True, + ) + def get_component(self, tag: str, **props) -> Component: """Get the component for a tag and props. @@ -239,43 +360,53 @@ class Markdown(Component): """ return str(self.get_component(tag, **props)).replace("\n", "") - def format_component_map(self) -> dict[str, Var]: - """Format the component map for rendering. + def _get_map_fn_var_from_children(self, component: Component, tag: str) -> Var: + """Create a function Var for the component map for the specified tag. + + Args: + component: The component to check for custom code. + tag: The tag of the component. Returns: - The formatted component map. + The function Var for the component map. """ - components = { - tag: Var( - _js_expr=f"(({{node, {_CHILDREN._js_expr}, {_PROPS._js_expr}}}) => ({self.format_component(tag)}))" - ) - for tag in self.component_map - } - - # Separate out inline code and code blocks. - components["code"] = Var( - _js_expr=f"""(({{node, inline, className, {_CHILDREN._js_expr}, {_PROPS._js_expr}}}) => {{ - const match = (className || '').match(/language-(?.*)/); - const language = match ? match[1] : ''; - if (language) {{ - (async () => {{ - try {{ - const module = await import(`react-syntax-highlighter/dist/cjs/languages/prism/${{language}}`); - SyntaxHighlighter.registerLanguage(language, module.default); - }} catch (error) {{ - console.error(`Error importing language module for ${{language}}:`, error); - }} - }})(); - }} - return inline ? ( - {self.format_component("code")} - ) : ( - {self.format_component("codeblock", language=Var(_js_expr="language", _var_type=str))} - ); - }})""".replace("\n", " ") + formatted_component = Var( + _js_expr=f"({self.format_component(tag)})", _var_type=str ) + if isinstance(component, MarkdownComponentMap): + return component.create_map_fn_var(fn_body=formatted_component) - return components + # fallback to the default fn Var creation if the component is not a MarkdownComponentMap. + return MarkdownComponentMap.create_map_fn_var(fn_body=formatted_component) + + def _get_map_fn_custom_code_from_children(self, component) -> list[str]: + """Recursively get markdown custom code from children components. + + Args: + component: The component to check for custom code. + + Returns: + A list of markdown custom code strings. + """ + custom_code_list = [] + if isinstance(component, MarkdownComponentMap): + custom_code_list.append(component.get_component_map_custom_code()) + + # If the component is a custom component(rx.memo), obtain the underlining + # component and get the custom code from the children. + if isinstance(component, CustomComponent): + custom_code_list.extend( + self._get_map_fn_custom_code_from_children( + component.component_fn(*component.get_prop_vars()) + ) + ) + elif isinstance(component, Component): + for child in component.children: + custom_code_list.extend( + self._get_map_fn_custom_code_from_children(child) + ) + + return custom_code_list @staticmethod def _component_map_hash(component_map) -> str: @@ -288,12 +419,12 @@ class Markdown(Component): return f"ComponentMap_{self.component_map_hash}" def _get_custom_code(self) -> str | None: - hooks = set() + hooks = {} for _component in self.component_map.values(): comp = _component(_MOCK_ARG) hooks.update(comp._get_all_hooks_internal()) hooks.update(comp._get_all_hooks()) - formatted_hooks = "\n".join(hooks) + formatted_hooks = "\n".join(hooks.keys()) return f""" function {self._get_component_map_name()} () {{ {formatted_hooks} diff --git a/reflex/components/markdown/markdown.pyi b/reflex/components/markdown/markdown.pyi index 9878e6181..1c329fb8c 100644 --- a/reflex/components/markdown/markdown.pyi +++ b/reflex/components/markdown/markdown.pyi @@ -3,8 +3,9 @@ # ------------------- DO NOT EDIT ---------------------- # This file was generated by `reflex/utils/pyi_generator.py`! # ------------------------------------------------------ +import dataclasses from functools import lru_cache -from typing import Any, Callable, Dict, Optional, Union, overload +from typing import Any, Callable, Dict, Optional, Sequence, Union, overload from reflex.components.component import Component from reflex.event import BASE_STATE, EventType @@ -16,6 +17,7 @@ _CHILDREN = Var(_js_expr="children", _var_type=str) _PROPS = Var(_js_expr="...props") _PROPS_IN_TAG = Var(_js_expr="{...props}") _MOCK_ARG = Var(_js_expr="", _var_type=str) +_LANGUAGE = Var(_js_expr="_language", _var_type=str) _REMARK_MATH = Var(_js_expr="remarkMath") _REMARK_GFM = Var(_js_expr="remarkGfm") _REMARK_UNWRAP_IMAGES = Var(_js_expr="remarkUnwrapImages") @@ -27,6 +29,21 @@ NO_PROPS_TAGS = ("ul", "ol", "li") @lru_cache def get_base_component_map() -> dict[str, Callable]: ... +@dataclasses.dataclass() +class MarkdownComponentMap: + @classmethod + def get_component_map_custom_code(cls) -> str: ... + @classmethod + def create_map_fn_var( + cls, + fn_body: Var | None = None, + fn_args: Sequence[str] | None = None, + explicit_return: bool | None = None, + ) -> Var: ... + @classmethod + def get_fn_args(cls) -> Sequence[str]: ... + @classmethod + def get_fn_body(cls) -> Var: ... class Markdown(Component): @overload @@ -82,6 +99,6 @@ class Markdown(Component): ... def add_imports(self) -> ImportDict | list[ImportDict]: ... + def format_component_map(self) -> dict[str, Var]: ... def get_component(self, tag: str, **props) -> Component: ... def format_component(self, tag: str, **props) -> str: ... - def format_component_map(self) -> dict[str, Var]: ... diff --git a/reflex/components/radix/themes/layout/list.py b/reflex/components/radix/themes/layout/list.py index d83fd168b..96fa169a0 100644 --- a/reflex/components/radix/themes/layout/list.py +++ b/reflex/components/radix/themes/layout/list.py @@ -8,6 +8,7 @@ from reflex.components.component import Component, ComponentNamespace from reflex.components.core.foreach import Foreach from reflex.components.el.elements.typography import Li, Ol, Ul from reflex.components.lucide.icon import Icon +from reflex.components.markdown.markdown import MarkdownComponentMap from reflex.components.radix.themes.typography.text import Text from reflex.vars.base import Var @@ -36,7 +37,7 @@ LiteralListStyleTypeOrdered = Literal[ ] -class BaseList(Component): +class BaseList(Component, MarkdownComponentMap): """Base class for ordered and unordered lists.""" tag = "ul" @@ -154,7 +155,7 @@ class OrderedList(BaseList, Ol): ) -class ListItem(Li): +class ListItem(Li, MarkdownComponentMap): """Display an item of an ordered or unordered list.""" @classmethod diff --git a/reflex/components/radix/themes/layout/list.pyi b/reflex/components/radix/themes/layout/list.pyi index 9c983c2ff..b42f689b9 100644 --- a/reflex/components/radix/themes/layout/list.pyi +++ b/reflex/components/radix/themes/layout/list.pyi @@ -7,6 +7,7 @@ from typing import Any, Dict, Iterable, Literal, Optional, Union, overload from reflex.components.component import Component, ComponentNamespace from reflex.components.el.elements.typography import Li, Ol, Ul +from reflex.components.markdown.markdown import MarkdownComponentMap from reflex.event import BASE_STATE, EventType from reflex.style import Style from reflex.vars.base import Var @@ -29,7 +30,7 @@ LiteralListStyleTypeOrdered = Literal[ "katakana", ] -class BaseList(Component): +class BaseList(Component, MarkdownComponentMap): @overload @classmethod def create( # type: ignore @@ -393,7 +394,7 @@ class OrderedList(BaseList, Ol): """ ... -class ListItem(Li): +class ListItem(Li, MarkdownComponentMap): @overload @classmethod def create( # type: ignore diff --git a/reflex/components/radix/themes/typography/code.py b/reflex/components/radix/themes/typography/code.py index ca19859d3..ab610b505 100644 --- a/reflex/components/radix/themes/typography/code.py +++ b/reflex/components/radix/themes/typography/code.py @@ -7,13 +7,14 @@ from __future__ import annotations from reflex.components.core.breakpoints import Responsive from reflex.components.el import elements +from reflex.components.markdown.markdown import MarkdownComponentMap from reflex.vars.base import Var from ..base import LiteralAccentColor, LiteralVariant, RadixThemesComponent from .base import LiteralTextSize, LiteralTextWeight -class Code(elements.Code, RadixThemesComponent): +class Code(elements.Code, RadixThemesComponent, MarkdownComponentMap): """A block level extended quotation.""" tag = "Code" diff --git a/reflex/components/radix/themes/typography/code.pyi b/reflex/components/radix/themes/typography/code.pyi index a211b97c4..0276eb982 100644 --- a/reflex/components/radix/themes/typography/code.pyi +++ b/reflex/components/radix/themes/typography/code.pyi @@ -7,13 +7,14 @@ from typing import Any, Dict, Literal, Optional, Union, overload from reflex.components.core.breakpoints import Breakpoints from reflex.components.el import elements +from reflex.components.markdown.markdown import MarkdownComponentMap from reflex.event import BASE_STATE, EventType from reflex.style import Style from reflex.vars.base import Var from ..base import RadixThemesComponent -class Code(elements.Code, RadixThemesComponent): +class Code(elements.Code, RadixThemesComponent, MarkdownComponentMap): @overload @classmethod def create( # type: ignore diff --git a/reflex/components/radix/themes/typography/heading.py b/reflex/components/radix/themes/typography/heading.py index 03e109717..ce1eaa68f 100644 --- a/reflex/components/radix/themes/typography/heading.py +++ b/reflex/components/radix/themes/typography/heading.py @@ -7,13 +7,14 @@ from __future__ import annotations from reflex.components.core.breakpoints import Responsive from reflex.components.el import elements +from reflex.components.markdown.markdown import MarkdownComponentMap from reflex.vars.base import Var from ..base import LiteralAccentColor, RadixThemesComponent from .base import LiteralTextAlign, LiteralTextSize, LiteralTextTrim, LiteralTextWeight -class Heading(elements.H1, RadixThemesComponent): +class Heading(elements.H1, RadixThemesComponent, MarkdownComponentMap): """A foundational text primitive based on the element.""" tag = "Heading" diff --git a/reflex/components/radix/themes/typography/heading.pyi b/reflex/components/radix/themes/typography/heading.pyi index a58b4ebf4..b5cb5c9d3 100644 --- a/reflex/components/radix/themes/typography/heading.pyi +++ b/reflex/components/radix/themes/typography/heading.pyi @@ -7,13 +7,14 @@ from typing import Any, Dict, Literal, Optional, Union, overload from reflex.components.core.breakpoints import Breakpoints from reflex.components.el import elements +from reflex.components.markdown.markdown import MarkdownComponentMap from reflex.event import BASE_STATE, EventType from reflex.style import Style from reflex.vars.base import Var from ..base import RadixThemesComponent -class Heading(elements.H1, RadixThemesComponent): +class Heading(elements.H1, RadixThemesComponent, MarkdownComponentMap): @overload @classmethod def create( # type: ignore diff --git a/reflex/components/radix/themes/typography/link.py b/reflex/components/radix/themes/typography/link.py index 6e3d2f983..1cc673536 100644 --- a/reflex/components/radix/themes/typography/link.py +++ b/reflex/components/radix/themes/typography/link.py @@ -12,6 +12,7 @@ from reflex.components.core.breakpoints import Responsive from reflex.components.core.colors import color from reflex.components.core.cond import cond from reflex.components.el.elements.inline import A +from reflex.components.markdown.markdown import MarkdownComponentMap from reflex.components.next.link import NextLink from reflex.utils.imports import ImportDict from reflex.vars.base import Var @@ -24,7 +25,7 @@ LiteralLinkUnderline = Literal["auto", "hover", "always", "none"] next_link = NextLink.create() -class Link(RadixThemesComponent, A, MemoizationLeaf): +class Link(RadixThemesComponent, A, MemoizationLeaf, MarkdownComponentMap): """A semantic element for navigation between pages.""" tag = "Link" diff --git a/reflex/components/radix/themes/typography/link.pyi b/reflex/components/radix/themes/typography/link.pyi index 8e3cfb959..db963c6df 100644 --- a/reflex/components/radix/themes/typography/link.pyi +++ b/reflex/components/radix/themes/typography/link.pyi @@ -8,6 +8,7 @@ from typing import Any, Dict, Literal, Optional, Union, overload from reflex.components.component import MemoizationLeaf from reflex.components.core.breakpoints import Breakpoints from reflex.components.el.elements.inline import A +from reflex.components.markdown.markdown import MarkdownComponentMap from reflex.components.next.link import NextLink from reflex.event import BASE_STATE, EventType from reflex.style import Style @@ -19,7 +20,7 @@ from ..base import RadixThemesComponent LiteralLinkUnderline = Literal["auto", "hover", "always", "none"] next_link = NextLink.create() -class Link(RadixThemesComponent, A, MemoizationLeaf): +class Link(RadixThemesComponent, A, MemoizationLeaf, MarkdownComponentMap): def add_imports(self) -> ImportDict: ... @overload @classmethod diff --git a/reflex/components/radix/themes/typography/text.py b/reflex/components/radix/themes/typography/text.py index e3576360a..1663ddedf 100644 --- a/reflex/components/radix/themes/typography/text.py +++ b/reflex/components/radix/themes/typography/text.py @@ -10,6 +10,7 @@ from typing import Literal from reflex.components.component import ComponentNamespace from reflex.components.core.breakpoints import Responsive from reflex.components.el import elements +from reflex.components.markdown.markdown import MarkdownComponentMap from reflex.vars.base import Var from ..base import LiteralAccentColor, RadixThemesComponent @@ -37,7 +38,7 @@ LiteralType = Literal[ ] -class Text(elements.Span, RadixThemesComponent): +class Text(elements.Span, RadixThemesComponent, MarkdownComponentMap): """A foundational text primitive based on the element.""" tag = "Text" diff --git a/reflex/components/radix/themes/typography/text.pyi b/reflex/components/radix/themes/typography/text.pyi index a5d023d37..824348b42 100644 --- a/reflex/components/radix/themes/typography/text.pyi +++ b/reflex/components/radix/themes/typography/text.pyi @@ -8,6 +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.components.markdown.markdown import MarkdownComponentMap from reflex.event import BASE_STATE, EventType from reflex.style import Style from reflex.vars.base import Var @@ -35,7 +36,7 @@ LiteralType = Literal[ "sup", ] -class Text(elements.Span, RadixThemesComponent): +class Text(elements.Span, RadixThemesComponent, MarkdownComponentMap): @overload @classmethod def create( # type: ignore diff --git a/reflex/event.py b/reflex/event.py index e51d1cc07..a64d4d6c1 100644 --- a/reflex/event.py +++ b/reflex/event.py @@ -45,6 +45,7 @@ from reflex.vars import VarData from reflex.vars.base import LiteralVar, Var from reflex.vars.function import ( ArgsFunctionOperation, + FunctionArgs, FunctionStringVar, FunctionVar, VarOperationCall, @@ -1643,7 +1644,7 @@ class LiteralEventChainVar(ArgsFunctionOperation, LiteralVar, EventChainVar): _js_expr="", _var_type=EventChain, _var_data=_var_data, - _args_names=arg_def, + _args=FunctionArgs(arg_def), _return_expr=invocation.call( LiteralVar.create([LiteralVar.create(event) for event in value.events]), arg_def_expr, diff --git a/reflex/vars/function.py b/reflex/vars/function.py index 49ef99614..98f3b2335 100644 --- a/reflex/vars/function.py +++ b/reflex/vars/function.py @@ -4,8 +4,9 @@ from __future__ import annotations import dataclasses import sys -from typing import Any, Callable, Optional, Tuple, Type, Union +from typing import Any, Callable, Optional, Sequence, Tuple, Type, Union +from reflex.utils import format from reflex.utils.types import GenericType from .base import CachedVarOperation, LiteralVar, Var, VarData, cached_property_no_lock @@ -126,6 +127,36 @@ class VarOperationCall(CachedVarOperation, Var): ) +@dataclasses.dataclass(frozen=True) +class DestructuredArg: + """Class for destructured arguments.""" + + fields: Tuple[str, ...] = tuple() + rest: Optional[str] = None + + def to_javascript(self) -> str: + """Convert the destructured argument to JavaScript. + + Returns: + The destructured argument in JavaScript. + """ + return format.wrap( + ", ".join(self.fields) + (f", ...{self.rest}" if self.rest else ""), + "{", + "}", + ) + + +@dataclasses.dataclass( + frozen=True, +) +class FunctionArgs: + """Class for function arguments.""" + + args: Tuple[Union[str, DestructuredArg], ...] = tuple() + rest: Optional[str] = None + + @dataclasses.dataclass( eq=False, frozen=True, @@ -134,8 +165,9 @@ class VarOperationCall(CachedVarOperation, Var): class ArgsFunctionOperation(CachedVarOperation, FunctionVar): """Base class for immutable function defined via arguments and return expression.""" - _args_names: Tuple[str, ...] = dataclasses.field(default_factory=tuple) + _args: FunctionArgs = dataclasses.field(default_factory=FunctionArgs) _return_expr: Union[Var, Any] = dataclasses.field(default=None) + _explicit_return: bool = dataclasses.field(default=False) @cached_property_no_lock def _cached_var_name(self) -> str: @@ -144,13 +176,31 @@ class ArgsFunctionOperation(CachedVarOperation, FunctionVar): Returns: The name of the var. """ - return f"(({', '.join(self._args_names)}) => ({str(LiteralVar.create(self._return_expr))}))" + arg_names_str = ", ".join( + [ + arg if isinstance(arg, str) else arg.to_javascript() + for arg in self._args.args + ] + ) + (f", ...{self._args.rest}" if self._args.rest else "") + + return_expr_str = str(LiteralVar.create(self._return_expr)) + + # Wrap return expression in curly braces if explicit return syntax is used. + return_expr_str_wrapped = ( + format.wrap(return_expr_str, "{", "}") + if self._explicit_return + else return_expr_str + ) + + return f"(({arg_names_str}) => {return_expr_str_wrapped})" @classmethod def create( cls, - args_names: Tuple[str, ...], + args_names: Sequence[Union[str, DestructuredArg]], return_expr: Var | Any, + rest: str | None = None, + explicit_return: bool = False, _var_type: GenericType = Callable, _var_data: VarData | None = None, ) -> ArgsFunctionOperation: @@ -159,6 +209,8 @@ class ArgsFunctionOperation(CachedVarOperation, FunctionVar): Args: args_names: The names of the arguments. return_expr: The return expression of the function. + rest: The name of the rest argument. + explicit_return: Whether to use explicit return syntax. _var_data: Additional hooks and imports associated with the Var. Returns: @@ -168,8 +220,9 @@ class ArgsFunctionOperation(CachedVarOperation, FunctionVar): _js_expr="", _var_type=_var_type, _var_data=_var_data, - _args_names=args_names, + _args=FunctionArgs(args=tuple(args_names), rest=rest), _return_expr=return_expr, + _explicit_return=explicit_return, ) diff --git a/tests/units/components/base/test_script.py b/tests/units/components/base/test_script.py index b909b6c61..e9c40188b 100644 --- a/tests/units/components/base/test_script.py +++ b/tests/units/components/base/test_script.py @@ -62,14 +62,14 @@ def test_script_event_handler(): ) render_dict = component.render() assert ( - f'onReady={{((...args) => ((addEvents([(Event("{EvState.get_full_name()}.on_ready", ({{ }}), ({{ }})))], args, ({{ }})))))}}' + f'onReady={{((...args) => (addEvents([(Event("{EvState.get_full_name()}.on_ready", ({{ }}), ({{ }})))], args, ({{ }}))))}}' in render_dict["props"] ) assert ( - f'onLoad={{((...args) => ((addEvents([(Event("{EvState.get_full_name()}.on_load", ({{ }}), ({{ }})))], args, ({{ }})))))}}' + f'onLoad={{((...args) => (addEvents([(Event("{EvState.get_full_name()}.on_load", ({{ }}), ({{ }})))], args, ({{ }}))))}}' in render_dict["props"] ) assert ( - f'onError={{((...args) => ((addEvents([(Event("{EvState.get_full_name()}.on_error", ({{ }}), ({{ }})))], args, ({{ }})))))}}' + f'onError={{((...args) => (addEvents([(Event("{EvState.get_full_name()}.on_error", ({{ }}), ({{ }})))], args, ({{ }}))))}}' in render_dict["props"] ) diff --git a/tests/units/components/datadisplay/test_code.py b/tests/units/components/datadisplay/test_code.py index 809c68fe5..6b7168756 100644 --- a/tests/units/components/datadisplay/test_code.py +++ b/tests/units/components/datadisplay/test_code.py @@ -11,22 +11,3 @@ def test_code_light_dark_theme(theme, expected): code_block = CodeBlock.create(theme=theme) assert code_block.theme._js_expr == expected # type: ignore - - -def generate_custom_code(language, expected_case): - return f"SyntaxHighlighter.registerLanguage('{language}', {expected_case})" - - -@pytest.mark.parametrize( - "language, expected_case", - [ - ("python", "python"), - ("firestore-security-rules", "firestoreSecurityRules"), - ("typescript", "typescript"), - ], -) -def test_get_custom_code(language, expected_case): - code_block = CodeBlock.create(language=language) - assert code_block._get_custom_code() == generate_custom_code( - language, expected_case - ) diff --git a/tests/units/components/markdown/__init__.py b/tests/units/components/markdown/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tests/units/components/markdown/test_markdown.py b/tests/units/components/markdown/test_markdown.py new file mode 100644 index 000000000..866f32ae1 --- /dev/null +++ b/tests/units/components/markdown/test_markdown.py @@ -0,0 +1,190 @@ +from typing import Type + +import pytest + +from reflex.components.component import Component, memo +from reflex.components.datadisplay.code import CodeBlock +from reflex.components.datadisplay.shiki_code_block import ShikiHighLevelCodeBlock +from reflex.components.markdown.markdown import Markdown, MarkdownComponentMap +from reflex.components.radix.themes.layout.box import Box +from reflex.components.radix.themes.typography.heading import Heading +from reflex.vars.base import Var + + +class CustomMarkdownComponent(Component, MarkdownComponentMap): + """A custom markdown component.""" + + tag = "CustomMarkdownComponent" + library = "custom" + + @classmethod + def get_fn_args(cls) -> tuple[str, ...]: + """Return the function arguments. + + Returns: + The function arguments. + """ + return ("custom_node", "custom_children", "custom_props") + + @classmethod + def get_fn_body(cls) -> Var: + """Return the function body. + + Returns: + The function body. + """ + return Var(_js_expr="{return custom_node + custom_children + custom_props}") + + +def syntax_highlighter_memoized_component(codeblock: Type[Component]): + @memo + def code_block(code: str, language: str): + return Box.create( + codeblock.create( + code, + language=language, + class_name="code-block", + can_copy=True, + ), + class_name="relative mb-4", + ) + + def code_block_markdown(*children, **props): + return code_block( + code=children[0], language=props.pop("language", "plain"), **props + ) + + return code_block_markdown + + +@pytest.mark.parametrize( + "fn_body, fn_args, explicit_return, expected", + [ + ( + None, + None, + False, + Var(_js_expr="(({node, children, ...props}) => undefined)"), + ), + ("return node", ("node",), True, Var(_js_expr="(({node}) => {return node})")), + ( + "return node + children", + ("node", "children"), + True, + Var(_js_expr="(({node, children}) => {return node + children})"), + ), + ( + "return node + props", + ("node", "...props"), + True, + Var(_js_expr="(({node, ...props}) => {return node + props})"), + ), + ( + "return node + children + props", + ("node", "children", "...props"), + True, + Var( + _js_expr="(({node, children, ...props}) => {return node + children + props})" + ), + ), + ], +) +def test_create_map_fn_var(fn_body, fn_args, explicit_return, expected): + result = MarkdownComponentMap.create_map_fn_var( + fn_body=Var(_js_expr=fn_body, _var_type=str) if fn_body else None, + fn_args=fn_args, + explicit_return=explicit_return, + ) + assert result._js_expr == expected._js_expr + + +@pytest.mark.parametrize( + ("cls", "fn_body", "fn_args", "explicit_return", "expected"), + [ + ( + MarkdownComponentMap, + None, + None, + False, + Var(_js_expr="(({node, children, ...props}) => undefined)"), + ), + ( + MarkdownComponentMap, + "return node", + ("node",), + True, + Var(_js_expr="(({node}) => {return node})"), + ), + ( + CustomMarkdownComponent, + None, + None, + True, + Var( + _js_expr="(({custom_node, custom_children, custom_props}) => {return custom_node + custom_children + custom_props})" + ), + ), + ( + CustomMarkdownComponent, + "return custom_node", + ("custom_node",), + True, + Var(_js_expr="(({custom_node}) => {return custom_node})"), + ), + ], +) +def test_create_map_fn_var_subclass(cls, fn_body, fn_args, explicit_return, expected): + result = cls.create_map_fn_var( + fn_body=Var(_js_expr=fn_body, _var_type=int) if fn_body else None, + fn_args=fn_args, + explicit_return=explicit_return, + ) + assert result._js_expr == expected._js_expr + + +@pytest.mark.parametrize( + "key,component_map, expected", + [ + ( + "code", + {}, + """(({node, inline, className, children, ...props}) => { const match = (className || '').match(/language-(?.*)/); const _language = match ? match[1] : ''; if (_language) { (async () => { try { const module = await import(`react-syntax-highlighter/dist/cjs/languages/prism/${_language}`); SyntaxHighlighter.registerLanguage(_language, module.default); } catch (error) { console.error(`Error importing language module for ${_language}:`, error); } })(); } ; return inline ? ( {children} ) : ( ); })""", + ), + ( + "code", + { + "codeblock": lambda value, **props: ShikiHighLevelCodeBlock.create( + value, **props + ) + }, + """(({node, inline, className, children, ...props}) => { const match = (className || '').match(/language-(?.*)/); const _language = match ? match[1] : ''; ; return inline ? ( {children} ) : ( ); })""", + ), + ( + "h1", + { + "h1": lambda value: CustomMarkdownComponent.create( + Heading.create(value, as_="h1", size="6", margin_y="0.5em") + ) + }, + """(({custom_node, custom_children, custom_props}) => ({children}))""", + ), + ( + "code", + {"codeblock": syntax_highlighter_memoized_component(CodeBlock)}, + """(({node, inline, className, children, ...props}) => { const match = (className || '').match(/language-(?.*)/); const _language = match ? match[1] : ''; if (_language) { (async () => { try { const module = await import(`react-syntax-highlighter/dist/cjs/languages/prism/${_language}`); SyntaxHighlighter.registerLanguage(_language, module.default); } catch (error) { console.error(`Error importing language module for ${_language}:`, error); } })(); } ; return inline ? ( {children} ) : ( ); })""", + ), + ( + "code", + { + "codeblock": syntax_highlighter_memoized_component( + ShikiHighLevelCodeBlock + ) + }, + """(({node, inline, className, children, ...props}) => { const match = (className || '').match(/language-(?.*)/); const _language = match ? match[1] : ''; ; return inline ? ( {children} ) : ( ); })""", + ), + ], +) +def test_markdown_format_component(key, component_map, expected): + markdown = Markdown.create("# header", component_map=component_map) + result = markdown.format_component_map() + assert str(result[key]) == expected diff --git a/tests/units/components/test_component.py b/tests/units/components/test_component.py index e4744b9fb..a2485d10e 100644 --- a/tests/units/components/test_component.py +++ b/tests/units/components/test_component.py @@ -844,9 +844,9 @@ def test_component_event_trigger_arbitrary_args(): comp = C1.create(on_foo=C1State.mock_handler) assert comp.render()["props"][0] == ( - "onFoo={((__e, _alpha, _bravo, _charlie) => ((addEvents(" + "onFoo={((__e, _alpha, _bravo, _charlie) => (addEvents(" f'[(Event("{C1State.get_full_name()}.mock_handler", ({{ ["_e"] : __e["target"]["value"], ["_bravo"] : _bravo["nested"], ["_charlie"] : (_charlie["custom"] + 42) }}), ({{ }})))], ' - "[__e, _alpha, _bravo, _charlie], ({ })))))}" + "[__e, _alpha, _bravo, _charlie], ({ }))))}" ) diff --git a/tests/units/test_event.py b/tests/units/test_event.py index 5e26da5d8..f17b3c4e4 100644 --- a/tests/units/test_event.py +++ b/tests/units/test_event.py @@ -222,16 +222,16 @@ def test_event_console_log(): assert spec.handler.fn.__qualname__ == "_call_function" assert spec.args[0][0].equals(Var(_js_expr="function")) assert spec.args[0][1].equals( - Var('(() => ((console["log"]("message"))))', _var_type=Callable) + Var('(() => (console["log"]("message")))', _var_type=Callable) ) assert ( format.format_event(spec) - == 'Event("_call_function", {function:(() => ((console["log"]("message"))))})' + == 'Event("_call_function", {function:(() => (console["log"]("message")))})' ) spec = event.console_log(Var(_js_expr="message")) assert ( format.format_event(spec) - == 'Event("_call_function", {function:(() => ((console["log"](message))))})' + == 'Event("_call_function", {function:(() => (console["log"](message)))})' ) @@ -242,16 +242,16 @@ def test_event_window_alert(): assert spec.handler.fn.__qualname__ == "_call_function" assert spec.args[0][0].equals(Var(_js_expr="function")) assert spec.args[0][1].equals( - Var('(() => ((window["alert"]("message"))))', _var_type=Callable) + Var('(() => (window["alert"]("message")))', _var_type=Callable) ) assert ( format.format_event(spec) - == 'Event("_call_function", {function:(() => ((window["alert"]("message"))))})' + == 'Event("_call_function", {function:(() => (window["alert"]("message")))})' ) spec = event.window_alert(Var(_js_expr="message")) assert ( format.format_event(spec) - == 'Event("_call_function", {function:(() => ((window["alert"](message))))})' + == 'Event("_call_function", {function:(() => (window["alert"](message)))})' ) diff --git a/tests/units/test_var.py b/tests/units/test_var.py index e9fa40fab..594473921 100644 --- a/tests/units/test_var.py +++ b/tests/units/test_var.py @@ -22,7 +22,11 @@ from reflex.vars.base import ( var_operation, var_operation_return, ) -from reflex.vars.function import ArgsFunctionOperation, FunctionStringVar +from reflex.vars.function import ( + ArgsFunctionOperation, + DestructuredArg, + FunctionStringVar, +) from reflex.vars.number import LiteralBooleanVar, LiteralNumberVar, NumberVar from reflex.vars.object import LiteralObjectVar, ObjectVar from reflex.vars.sequence import ( @@ -921,13 +925,13 @@ def test_function_var(): ) assert ( str(manual_addition_func.call(1, 2)) - == '(((a, b) => (({ ["args"] : [a, b], ["result"] : a + b })))(1, 2))' + == '(((a, b) => ({ ["args"] : [a, b], ["result"] : a + b }))(1, 2))' ) increment_func = addition_func(1) assert ( str(increment_func.call(2)) - == "(((...args) => ((((a, b) => a + b)(1, ...args))))(2))" + == "(((...args) => (((a, b) => a + b)(1, ...args)))(2))" ) create_hello_statement = ArgsFunctionOperation.create( @@ -937,9 +941,25 @@ def test_function_var(): last_name = LiteralStringVar.create("Universe") assert ( str(create_hello_statement.call(f"{first_name} {last_name}")) - == '(((name) => (("Hello, "+name+"!")))("Steven Universe"))' + == '(((name) => ("Hello, "+name+"!"))("Steven Universe"))' ) + # Test with destructured arguments + destructured_func = ArgsFunctionOperation.create( + (DestructuredArg(fields=("a", "b")),), + Var(_js_expr="a + b"), + ) + assert ( + str(destructured_func.call({"a": 1, "b": 2})) + == '((({a, b}) => a + b)(({ ["a"] : 1, ["b"] : 2 })))' + ) + + # Test with explicit return + explicit_return_func = ArgsFunctionOperation.create( + ("a", "b"), Var(_js_expr="return a + b"), explicit_return=True + ) + assert str(explicit_return_func.call(1, 2)) == "(((a, b) => {return a + b})(1, 2))" + def test_var_operation(): @var_operation diff --git a/tests/units/utils/test_format.py b/tests/units/utils/test_format.py index f8b605541..cd1d0179d 100644 --- a/tests/units/utils/test_format.py +++ b/tests/units/utils/test_format.py @@ -374,7 +374,7 @@ def test_format_match( events=[EventSpec(handler=EventHandler(fn=mock_event))], args_spec=lambda: [], ), - '((...args) => ((addEvents([(Event("mock_event", ({ }), ({ })))], args, ({ })))))', + '((...args) => (addEvents([(Event("mock_event", ({ }), ({ })))], args, ({ }))))', ), ( EventChain( @@ -395,7 +395,7 @@ def test_format_match( ], args_spec=lambda e: [e.target.value], ), - '((_e) => ((addEvents([(Event("mock_event", ({ ["arg"] : _e["target"]["value"] }), ({ })))], [_e], ({ })))))', + '((_e) => (addEvents([(Event("mock_event", ({ ["arg"] : _e["target"]["value"] }), ({ })))], [_e], ({ }))))', ), ( EventChain( @@ -403,7 +403,7 @@ def test_format_match( args_spec=lambda: [], event_actions={"stopPropagation": True}, ), - '((...args) => ((addEvents([(Event("mock_event", ({ }), ({ })))], args, ({ ["stopPropagation"] : true })))))', + '((...args) => (addEvents([(Event("mock_event", ({ }), ({ })))], args, ({ ["stopPropagation"] : true }))))', ), ( EventChain( @@ -415,7 +415,7 @@ def test_format_match( ], args_spec=lambda: [], ), - '((...args) => ((addEvents([(Event("mock_event", ({ }), ({ ["stopPropagation"] : true })))], args, ({ })))))', + '((...args) => (addEvents([(Event("mock_event", ({ }), ({ ["stopPropagation"] : true })))], args, ({ }))))', ), ( EventChain( @@ -423,7 +423,7 @@ def test_format_match( args_spec=lambda: [], event_actions={"preventDefault": True}, ), - '((...args) => ((addEvents([(Event("mock_event", ({ }), ({ })))], args, ({ ["preventDefault"] : true })))))', + '((...args) => (addEvents([(Event("mock_event", ({ }), ({ })))], args, ({ ["preventDefault"] : true }))))', ), ({"a": "red", "b": "blue"}, '({ ["a"] : "red", ["b"] : "blue" })'), (Var(_js_expr="var", _var_type=int).guess_type(), "var"), From e0d1a5849683e883761fc54853fa32b5b4dfcb87 Mon Sep 17 00:00:00 2001 From: Khaleel Al-Adhami Date: Fri, 8 Nov 2024 10:12:29 -0800 Subject: [PATCH 17/17] fix upload argspec being missing (#4335) --- reflex/components/core/upload.py | 12 ++++++-- reflex/components/core/upload.pyi | 51 +++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+), 2 deletions(-) diff --git a/reflex/components/core/upload.py b/reflex/components/core/upload.py index fe8845e8f..33dfae40f 100644 --- a/reflex/components/core/upload.py +++ b/reflex/components/core/upload.py @@ -5,6 +5,7 @@ from __future__ import annotations from pathlib import Path from typing import Any, Callable, ClassVar, Dict, List, Optional, Tuple +from reflex.components.base.fragment import Fragment from reflex.components.component import ( Component, ComponentNamespace, @@ -181,6 +182,13 @@ class UploadFilesProvider(Component): tag = "UploadFilesProvider" +class GhostUpload(Fragment): + """A ghost upload component.""" + + # Fired when files are dropped. + on_drop: EventHandler[_on_drop_spec] + + class Upload(MemoizationLeaf): """A file upload component.""" @@ -276,8 +284,8 @@ class Upload(MemoizationLeaf): root_props_unique_name = get_unique_variable_name() event_var, callback_str = StatefulComponent._get_memoized_event_triggers( - Box.create(on_click=upload_props["on_drop"]) # type: ignore - )["on_click"] + GhostUpload.create(on_drop=upload_props["on_drop"]) + )["on_drop"] upload_props["on_drop"] = event_var diff --git a/reflex/components/core/upload.pyi b/reflex/components/core/upload.pyi index e38fad256..6238ff9cb 100644 --- a/reflex/components/core/upload.pyi +++ b/reflex/components/core/upload.pyi @@ -6,6 +6,7 @@ from pathlib import Path from typing import Any, ClassVar, Dict, List, Optional, Union, overload +from reflex.components.base.fragment import Fragment from reflex.components.component import Component, ComponentNamespace, MemoizationLeaf from reflex.constants import Dirs from reflex.event import BASE_STATE, CallableEventSpec, EventSpec, EventType @@ -84,6 +85,56 @@ class UploadFilesProvider(Component): """ ... +class GhostUpload(Fragment): + @overload + @classmethod + def create( # type: ignore + cls, + *children, + style: Optional[Style] = None, + key: Optional[Any] = None, + id: Optional[Any] = None, + class_name: Optional[Any] = None, + autofocus: Optional[bool] = None, + custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None, + on_blur: Optional[EventType[[], 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_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, + on_mouse_enter: Optional[EventType[[], BASE_STATE]] = None, + on_mouse_leave: Optional[EventType[[], BASE_STATE]] = None, + on_mouse_move: Optional[EventType[[], BASE_STATE]] = None, + on_mouse_out: Optional[EventType[[], BASE_STATE]] = None, + on_mouse_over: Optional[EventType[[], BASE_STATE]] = None, + on_mouse_up: Optional[EventType[[], BASE_STATE]] = None, + on_scroll: Optional[EventType[[], BASE_STATE]] = None, + on_unmount: Optional[EventType[[], BASE_STATE]] = None, + **props, + ) -> "GhostUpload": + """Create the component. + + Args: + *children: The children of the component. + on_drop: Fired when files are dropped. + style: The style of the component. + key: A unique key for the component. + id: The id for the component. + class_name: The class name for the component. + autofocus: Whether the component should take the focus once the page is loaded + custom_attrs: custom attribute + **props: The props of the component. + + Returns: + The component. + """ + ... + class Upload(MemoizationLeaf): is_used: ClassVar[bool] = False