reflex 0.6.8a2__py3-none-any.whl → 0.7.0a2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of reflex might be problematic. Click here for more details.
- reflex/.templates/jinja/custom_components/pyproject.toml.jinja2 +1 -1
- reflex/.templates/jinja/web/pages/_app.js.jinja2 +7 -7
- reflex/.templates/jinja/web/pages/utils.js.jinja2 +3 -3
- reflex/.templates/web/components/reflex/radix_themes_color_mode_provider.js +1 -4
- reflex/.templates/web/utils/state.js +65 -36
- reflex/__init__.py +4 -17
- reflex/__init__.pyi +1 -2
- reflex/app.py +249 -116
- reflex/app_mixins/lifespan.py +9 -9
- reflex/app_mixins/middleware.py +6 -6
- reflex/app_module_for_backend.py +3 -7
- reflex/base.py +7 -7
- reflex/compiler/compiler.py +8 -0
- reflex/compiler/utils.py +35 -6
- reflex/components/base/app_wrap.pyi +16 -16
- reflex/components/base/bare.py +1 -1
- reflex/components/base/body.pyi +16 -16
- reflex/components/base/document.pyi +76 -76
- reflex/components/base/error_boundary.py +2 -1
- reflex/components/base/error_boundary.pyi +19 -22
- reflex/components/base/fragment.pyi +16 -16
- reflex/components/base/head.pyi +31 -31
- reflex/components/base/link.pyi +31 -31
- reflex/components/base/meta.py +2 -2
- reflex/components/base/meta.pyi +61 -61
- reflex/components/base/script.pyi +19 -19
- reflex/components/base/strict_mode.py +10 -0
- reflex/components/base/strict_mode.pyi +57 -0
- reflex/components/component.py +38 -77
- reflex/components/core/banner.py +159 -4
- reflex/components/core/banner.pyi +162 -76
- reflex/components/core/breakpoints.py +3 -1
- reflex/components/core/client_side_routing.py +1 -1
- reflex/components/core/client_side_routing.pyi +32 -32
- reflex/components/core/clipboard.pyi +17 -20
- reflex/components/core/cond.py +9 -10
- reflex/components/core/debounce.py +1 -1
- reflex/components/core/debounce.pyi +17 -17
- reflex/components/core/foreach.py +28 -3
- reflex/components/core/html.py +1 -1
- reflex/components/core/html.pyi +16 -16
- reflex/components/core/match.py +5 -5
- reflex/components/core/sticky.py +160 -0
- reflex/components/core/sticky.pyi +449 -0
- reflex/components/core/upload.py +2 -2
- reflex/components/core/upload.pyi +80 -88
- reflex/components/datadisplay/code.py +5 -14
- reflex/components/datadisplay/code.pyi +31 -31
- reflex/components/datadisplay/dataeditor.py +7 -4
- reflex/components/datadisplay/dataeditor.pyi +40 -54
- reflex/components/datadisplay/logo.py +13 -8
- reflex/components/datadisplay/shiki_code_block.py +14 -9
- reflex/components/datadisplay/shiki_code_block.pyi +46 -46
- reflex/components/dynamic.py +22 -3
- reflex/components/el/constants/reflex.py +1 -1
- reflex/components/el/element.py +1 -1
- reflex/components/el/element.pyi +16 -16
- reflex/components/el/elements/base.pyi +16 -16
- reflex/components/el/elements/forms.py +4 -4
- reflex/components/el/elements/forms.pyi +224 -258
- reflex/components/el/elements/inline.pyi +421 -421
- reflex/components/el/elements/media.pyi +376 -376
- reflex/components/el/elements/metadata.pyi +91 -91
- reflex/components/el/elements/other.pyi +106 -106
- reflex/components/el/elements/scripts.pyi +46 -46
- reflex/components/el/elements/sectioning.pyi +226 -226
- reflex/components/el/elements/tables.pyi +151 -151
- reflex/components/el/elements/typography.pyi +226 -226
- reflex/components/gridjs/datatable.pyi +31 -31
- reflex/components/lucide/icon.py +46 -8
- reflex/components/lucide/icon.pyi +85 -31
- reflex/components/markdown/markdown.py +10 -8
- reflex/components/markdown/markdown.pyi +16 -16
- reflex/components/moment/moment.py +2 -2
- reflex/components/moment/moment.pyi +17 -19
- reflex/components/next/base.pyi +16 -16
- reflex/components/next/image.py +16 -4
- reflex/components/next/image.pyi +22 -20
- reflex/components/next/link.py +1 -1
- reflex/components/next/link.pyi +16 -16
- reflex/components/next/video.pyi +16 -16
- reflex/components/plotly/plotly.py +5 -5
- reflex/components/plotly/plotly.pyi +34 -44
- reflex/components/props.py +3 -3
- reflex/components/radix/__init__.pyi +1 -1
- reflex/components/radix/primitives/accordion.py +9 -5
- reflex/components/radix/primitives/accordion.pyi +110 -108
- reflex/components/radix/primitives/base.pyi +31 -31
- reflex/components/radix/primitives/drawer.py +5 -2
- reflex/components/radix/primitives/drawer.pyi +179 -187
- reflex/components/radix/primitives/form.pyi +160 -172
- reflex/components/radix/primitives/progress.py +1 -1
- reflex/components/radix/primitives/progress.pyi +76 -76
- reflex/components/radix/primitives/slider.py +1 -1
- reflex/components/radix/primitives/slider.pyi +78 -82
- reflex/components/radix/themes/base.pyi +121 -121
- reflex/components/radix/themes/color_mode.py +11 -9
- reflex/components/radix/themes/color_mode.pyi +47 -49
- reflex/components/radix/themes/components/alert_dialog.py +3 -0
- reflex/components/radix/themes/components/alert_dialog.pyi +110 -112
- reflex/components/radix/themes/components/aspect_ratio.pyi +16 -16
- reflex/components/radix/themes/components/avatar.pyi +16 -16
- reflex/components/radix/themes/components/badge.pyi +16 -16
- reflex/components/radix/themes/components/button.pyi +16 -16
- reflex/components/radix/themes/components/callout.pyi +76 -76
- reflex/components/radix/themes/components/card.py +1 -1
- reflex/components/radix/themes/components/card.pyi +17 -17
- reflex/components/radix/themes/components/checkbox.pyi +49 -55
- reflex/components/radix/themes/components/checkbox_cards.pyi +31 -31
- reflex/components/radix/themes/components/checkbox_group.pyi +31 -31
- reflex/components/radix/themes/components/context_menu.py +5 -0
- reflex/components/radix/themes/components/context_menu.pyi +149 -155
- reflex/components/radix/themes/components/data_list.pyi +61 -61
- reflex/components/radix/themes/components/dialog.py +3 -0
- reflex/components/radix/themes/components/dialog.pyi +113 -117
- reflex/components/radix/themes/components/dropdown_menu.py +5 -0
- reflex/components/radix/themes/components/dropdown_menu.pyi +133 -137
- reflex/components/radix/themes/components/hover_card.py +3 -0
- reflex/components/radix/themes/components/hover_card.pyi +63 -67
- reflex/components/radix/themes/components/icon_button.py +2 -2
- reflex/components/radix/themes/components/icon_button.pyi +17 -16
- reflex/components/radix/themes/components/inset.pyi +16 -16
- reflex/components/radix/themes/components/popover.py +3 -0
- reflex/components/radix/themes/components/popover.pyi +68 -70
- reflex/components/radix/themes/components/progress.pyi +16 -16
- reflex/components/radix/themes/components/radio.pyi +16 -16
- reflex/components/radix/themes/components/radio_cards.py +2 -0
- reflex/components/radix/themes/components/radio_cards.pyi +32 -34
- reflex/components/radix/themes/components/radio_group.py +1 -1
- reflex/components/radix/themes/components/radio_group.pyi +62 -64
- reflex/components/radix/themes/components/scroll_area.pyi +16 -16
- reflex/components/radix/themes/components/segmented_control.pyi +32 -35
- reflex/components/radix/themes/components/select.py +4 -0
- reflex/components/radix/themes/components/select.pyi +145 -157
- reflex/components/radix/themes/components/separator.pyi +16 -16
- reflex/components/radix/themes/components/skeleton.py +3 -0
- reflex/components/radix/themes/components/skeleton.pyi +16 -16
- reflex/components/radix/themes/components/slider.pyi +22 -28
- reflex/components/radix/themes/components/spinner.pyi +16 -16
- reflex/components/radix/themes/components/switch.pyi +17 -19
- reflex/components/radix/themes/components/table.pyi +106 -106
- reflex/components/radix/themes/components/tabs.py +3 -0
- reflex/components/radix/themes/components/tabs.pyi +78 -82
- reflex/components/radix/themes/components/text_area.py +12 -0
- reflex/components/radix/themes/components/text_area.pyi +21 -33
- reflex/components/radix/themes/components/text_field.py +1 -1
- reflex/components/radix/themes/components/text_field.pyi +52 -80
- reflex/components/radix/themes/components/tooltip.py +6 -1
- reflex/components/radix/themes/components/tooltip.pyi +20 -21
- reflex/components/radix/themes/layout/__init__.pyi +1 -1
- reflex/components/radix/themes/layout/base.pyi +16 -16
- reflex/components/radix/themes/layout/box.pyi +16 -16
- reflex/components/radix/themes/layout/center.pyi +16 -16
- reflex/components/radix/themes/layout/container.pyi +16 -16
- reflex/components/radix/themes/layout/flex.pyi +16 -16
- reflex/components/radix/themes/layout/grid.pyi +16 -16
- reflex/components/radix/themes/layout/list.py +2 -2
- reflex/components/radix/themes/layout/list.pyi +76 -76
- reflex/components/radix/themes/layout/section.pyi +16 -16
- reflex/components/radix/themes/layout/spacer.pyi +16 -16
- reflex/components/radix/themes/layout/stack.py +2 -2
- reflex/components/radix/themes/layout/stack.pyi +46 -46
- reflex/components/radix/themes/typography/blockquote.pyi +16 -16
- reflex/components/radix/themes/typography/code.pyi +16 -16
- reflex/components/radix/themes/typography/heading.pyi +16 -16
- reflex/components/radix/themes/typography/link.py +1 -1
- reflex/components/radix/themes/typography/link.pyi +16 -16
- reflex/components/radix/themes/typography/text.py +2 -2
- reflex/components/radix/themes/typography/text.pyi +106 -106
- reflex/components/react_player/audio.pyi +33 -39
- reflex/components/react_player/react_player.py +1 -1
- reflex/components/react_player/react_player.pyi +32 -38
- reflex/components/react_player/video.pyi +33 -39
- reflex/components/recharts/__init__.py +2 -0
- reflex/components/recharts/__init__.pyi +2 -0
- reflex/components/recharts/cartesian.pyi +282 -282
- reflex/components/recharts/charts.py +15 -15
- reflex/components/recharts/charts.pyi +164 -164
- reflex/components/recharts/general.py +19 -4
- reflex/components/recharts/general.pyi +132 -81
- reflex/components/recharts/polar.py +2 -2
- reflex/components/recharts/polar.pyi +55 -55
- reflex/components/recharts/recharts.py +4 -4
- reflex/components/recharts/recharts.pyi +31 -31
- reflex/components/sonner/toast.py +15 -13
- reflex/components/sonner/toast.pyi +22 -22
- reflex/components/suneditor/editor.py +6 -4
- reflex/components/suneditor/editor.pyi +26 -40
- reflex/components/tags/iter_tag.py +3 -3
- reflex/components/tags/tag.py +25 -3
- reflex/config.py +48 -15
- reflex/constants/__init__.py +1 -0
- reflex/constants/base.py +4 -1
- reflex/constants/compiler.py +5 -2
- reflex/constants/config.py +8 -1
- reflex/constants/installer.py +9 -9
- reflex/constants/style.py +1 -1
- reflex/custom_components/custom_components.py +9 -7
- reflex/event.py +215 -208
- reflex/experimental/__init__.py +19 -11
- reflex/experimental/client_state.py +53 -28
- reflex/experimental/hooks.py +5 -5
- reflex/experimental/layout.py +8 -5
- reflex/experimental/layout.pyi +79 -83
- reflex/experimental/misc.py +3 -3
- reflex/istate/wrappers.py +1 -1
- reflex/middleware/hydrate_middleware.py +2 -2
- reflex/model.py +11 -6
- reflex/page.py +5 -5
- reflex/reflex.py +90 -19
- reflex/route.py +1 -1
- reflex/state.py +358 -401
- reflex/style.py +27 -3
- reflex/testing.py +29 -23
- reflex/utils/build.py +6 -2
- reflex/utils/codespaces.py +1 -4
- reflex/utils/compat.py +6 -5
- reflex/utils/console.py +52 -16
- reflex/utils/exceptions.py +89 -26
- reflex/utils/exec.py +69 -74
- reflex/utils/export.py +6 -1
- reflex/utils/format.py +8 -40
- reflex/utils/imports.py +2 -2
- reflex/utils/lazy_loader.py +7 -1
- reflex/utils/path_ops.py +28 -14
- reflex/utils/prerequisites.py +326 -67
- reflex/utils/processes.py +45 -32
- reflex/utils/pyi_generator.py +39 -33
- reflex/utils/registry.py +4 -4
- reflex/utils/serializers.py +1 -1
- reflex/utils/telemetry.py +5 -4
- reflex/utils/types.py +42 -18
- reflex/vars/base.py +656 -333
- reflex/vars/datetime.py +6 -7
- reflex/vars/dep_tracking.py +344 -0
- reflex/vars/function.py +11 -5
- reflex/vars/number.py +31 -43
- reflex/vars/object.py +63 -62
- reflex/vars/sequence.py +79 -67
- {reflex-0.6.8a2.dist-info → reflex-0.7.0a2.dist-info}/METADATA +7 -8
- reflex-0.7.0a2.dist-info/RECORD +401 -0
- {reflex-0.6.8a2.dist-info → reflex-0.7.0a2.dist-info}/WHEEL +1 -1
- reflex/experimental/assets.py +0 -37
- reflex-0.6.8a2.dist-info/RECORD +0 -397
- {reflex-0.6.8a2.dist-info → reflex-0.7.0a2.dist-info}/LICENSE +0 -0
- {reflex-0.6.8a2.dist-info → reflex-0.7.0a2.dist-info}/entry_points.txt +0 -0
|
@@ -9,7 +9,7 @@ from reflex.base import Base
|
|
|
9
9
|
from reflex.components.component import Component, ComponentNamespace
|
|
10
10
|
from reflex.components.markdown.markdown import MarkdownComponentMap
|
|
11
11
|
from reflex.components.props import NoExtrasAllowedProps
|
|
12
|
-
from reflex.event import
|
|
12
|
+
from reflex.event import EventType
|
|
13
13
|
from reflex.style import Style
|
|
14
14
|
from reflex.vars.base import Var
|
|
15
15
|
from reflex.vars.function import FunctionStringVar
|
|
@@ -928,21 +928,21 @@ class ShikiCodeBlock(Component, MarkdownComponentMap):
|
|
|
928
928
|
class_name: Optional[Any] = None,
|
|
929
929
|
autofocus: Optional[bool] = None,
|
|
930
930
|
custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None,
|
|
931
|
-
on_blur: Optional[EventType[
|
|
932
|
-
on_click: Optional[EventType[
|
|
933
|
-
on_context_menu: Optional[EventType[
|
|
934
|
-
on_double_click: Optional[EventType[
|
|
935
|
-
on_focus: Optional[EventType[
|
|
936
|
-
on_mount: Optional[EventType[
|
|
937
|
-
on_mouse_down: Optional[EventType[
|
|
938
|
-
on_mouse_enter: Optional[EventType[
|
|
939
|
-
on_mouse_leave: Optional[EventType[
|
|
940
|
-
on_mouse_move: Optional[EventType[
|
|
941
|
-
on_mouse_out: Optional[EventType[
|
|
942
|
-
on_mouse_over: Optional[EventType[
|
|
943
|
-
on_mouse_up: Optional[EventType[
|
|
944
|
-
on_scroll: Optional[EventType[
|
|
945
|
-
on_unmount: Optional[EventType[
|
|
931
|
+
on_blur: Optional[EventType[()]] = None,
|
|
932
|
+
on_click: Optional[EventType[()]] = None,
|
|
933
|
+
on_context_menu: Optional[EventType[()]] = None,
|
|
934
|
+
on_double_click: Optional[EventType[()]] = None,
|
|
935
|
+
on_focus: Optional[EventType[()]] = None,
|
|
936
|
+
on_mount: Optional[EventType[()]] = None,
|
|
937
|
+
on_mouse_down: Optional[EventType[()]] = None,
|
|
938
|
+
on_mouse_enter: Optional[EventType[()]] = None,
|
|
939
|
+
on_mouse_leave: Optional[EventType[()]] = None,
|
|
940
|
+
on_mouse_move: Optional[EventType[()]] = None,
|
|
941
|
+
on_mouse_out: Optional[EventType[()]] = None,
|
|
942
|
+
on_mouse_over: Optional[EventType[()]] = None,
|
|
943
|
+
on_mouse_up: Optional[EventType[()]] = None,
|
|
944
|
+
on_scroll: Optional[EventType[()]] = None,
|
|
945
|
+
on_unmount: Optional[EventType[()]] = None,
|
|
946
946
|
**props,
|
|
947
947
|
) -> "ShikiCodeBlock":
|
|
948
948
|
"""Create a code block component using [shiki syntax highlighter](https://shiki.matsu.io/).
|
|
@@ -1555,21 +1555,21 @@ class ShikiHighLevelCodeBlock(ShikiCodeBlock):
|
|
|
1555
1555
|
class_name: Optional[Any] = None,
|
|
1556
1556
|
autofocus: Optional[bool] = None,
|
|
1557
1557
|
custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None,
|
|
1558
|
-
on_blur: Optional[EventType[
|
|
1559
|
-
on_click: Optional[EventType[
|
|
1560
|
-
on_context_menu: Optional[EventType[
|
|
1561
|
-
on_double_click: Optional[EventType[
|
|
1562
|
-
on_focus: Optional[EventType[
|
|
1563
|
-
on_mount: Optional[EventType[
|
|
1564
|
-
on_mouse_down: Optional[EventType[
|
|
1565
|
-
on_mouse_enter: Optional[EventType[
|
|
1566
|
-
on_mouse_leave: Optional[EventType[
|
|
1567
|
-
on_mouse_move: Optional[EventType[
|
|
1568
|
-
on_mouse_out: Optional[EventType[
|
|
1569
|
-
on_mouse_over: Optional[EventType[
|
|
1570
|
-
on_mouse_up: Optional[EventType[
|
|
1571
|
-
on_scroll: Optional[EventType[
|
|
1572
|
-
on_unmount: Optional[EventType[
|
|
1558
|
+
on_blur: Optional[EventType[()]] = None,
|
|
1559
|
+
on_click: Optional[EventType[()]] = None,
|
|
1560
|
+
on_context_menu: Optional[EventType[()]] = None,
|
|
1561
|
+
on_double_click: Optional[EventType[()]] = None,
|
|
1562
|
+
on_focus: Optional[EventType[()]] = None,
|
|
1563
|
+
on_mount: Optional[EventType[()]] = None,
|
|
1564
|
+
on_mouse_down: Optional[EventType[()]] = None,
|
|
1565
|
+
on_mouse_enter: Optional[EventType[()]] = None,
|
|
1566
|
+
on_mouse_leave: Optional[EventType[()]] = None,
|
|
1567
|
+
on_mouse_move: Optional[EventType[()]] = None,
|
|
1568
|
+
on_mouse_out: Optional[EventType[()]] = None,
|
|
1569
|
+
on_mouse_over: Optional[EventType[()]] = None,
|
|
1570
|
+
on_mouse_up: Optional[EventType[()]] = None,
|
|
1571
|
+
on_scroll: Optional[EventType[()]] = None,
|
|
1572
|
+
on_unmount: Optional[EventType[()]] = None,
|
|
1573
1573
|
**props,
|
|
1574
1574
|
) -> "ShikiHighLevelCodeBlock":
|
|
1575
1575
|
"""Create a code block component using [shiki syntax highlighter](https://shiki.matsu.io/).
|
|
@@ -2185,21 +2185,21 @@ class CodeblockNamespace(ComponentNamespace):
|
|
|
2185
2185
|
class_name: Optional[Any] = None,
|
|
2186
2186
|
autofocus: Optional[bool] = None,
|
|
2187
2187
|
custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None,
|
|
2188
|
-
on_blur: Optional[EventType[
|
|
2189
|
-
on_click: Optional[EventType[
|
|
2190
|
-
on_context_menu: Optional[EventType[
|
|
2191
|
-
on_double_click: Optional[EventType[
|
|
2192
|
-
on_focus: Optional[EventType[
|
|
2193
|
-
on_mount: Optional[EventType[
|
|
2194
|
-
on_mouse_down: Optional[EventType[
|
|
2195
|
-
on_mouse_enter: Optional[EventType[
|
|
2196
|
-
on_mouse_leave: Optional[EventType[
|
|
2197
|
-
on_mouse_move: Optional[EventType[
|
|
2198
|
-
on_mouse_out: Optional[EventType[
|
|
2199
|
-
on_mouse_over: Optional[EventType[
|
|
2200
|
-
on_mouse_up: Optional[EventType[
|
|
2201
|
-
on_scroll: Optional[EventType[
|
|
2202
|
-
on_unmount: Optional[EventType[
|
|
2188
|
+
on_blur: Optional[EventType[()]] = None,
|
|
2189
|
+
on_click: Optional[EventType[()]] = None,
|
|
2190
|
+
on_context_menu: Optional[EventType[()]] = None,
|
|
2191
|
+
on_double_click: Optional[EventType[()]] = None,
|
|
2192
|
+
on_focus: Optional[EventType[()]] = None,
|
|
2193
|
+
on_mount: Optional[EventType[()]] = None,
|
|
2194
|
+
on_mouse_down: Optional[EventType[()]] = None,
|
|
2195
|
+
on_mouse_enter: Optional[EventType[()]] = None,
|
|
2196
|
+
on_mouse_leave: Optional[EventType[()]] = None,
|
|
2197
|
+
on_mouse_move: Optional[EventType[()]] = None,
|
|
2198
|
+
on_mouse_out: Optional[EventType[()]] = None,
|
|
2199
|
+
on_mouse_over: Optional[EventType[()]] = None,
|
|
2200
|
+
on_mouse_up: Optional[EventType[()]] = None,
|
|
2201
|
+
on_scroll: Optional[EventType[()]] = None,
|
|
2202
|
+
on_unmount: Optional[EventType[()]] = None,
|
|
2203
2203
|
**props,
|
|
2204
2204
|
) -> "ShikiHighLevelCodeBlock":
|
|
2205
2205
|
"""Create a code block component using [shiki syntax highlighter](https://shiki.matsu.io/).
|
reflex/components/dynamic.py
CHANGED
|
@@ -4,7 +4,7 @@ from typing import TYPE_CHECKING, Union
|
|
|
4
4
|
|
|
5
5
|
from reflex import constants
|
|
6
6
|
from reflex.utils import imports
|
|
7
|
-
from reflex.utils.exceptions import
|
|
7
|
+
from reflex.utils.exceptions import DynamicComponentMissingLibraryError
|
|
8
8
|
from reflex.utils.format import format_library_name
|
|
9
9
|
from reflex.utils.serializers import serializer
|
|
10
10
|
from reflex.vars import Var, get_unique_variable_name
|
|
@@ -36,13 +36,15 @@ def bundle_library(component: Union["Component", str]):
|
|
|
36
36
|
component: The component to bundle the library with.
|
|
37
37
|
|
|
38
38
|
Raises:
|
|
39
|
-
|
|
39
|
+
DynamicComponentMissingLibraryError: Raised when a dynamic component is missing a library.
|
|
40
40
|
"""
|
|
41
41
|
if isinstance(component, str):
|
|
42
42
|
bundled_libraries.add(component)
|
|
43
43
|
return
|
|
44
44
|
if component.library is None:
|
|
45
|
-
raise
|
|
45
|
+
raise DynamicComponentMissingLibraryError(
|
|
46
|
+
"Component must have a library to bundle."
|
|
47
|
+
)
|
|
46
48
|
bundled_libraries.add(format_library_name(component.library))
|
|
47
49
|
|
|
48
50
|
|
|
@@ -136,6 +138,23 @@ def load_dynamic_serializer():
|
|
|
136
138
|
|
|
137
139
|
module_code_lines.insert(0, "const React = window.__reflex.react;")
|
|
138
140
|
|
|
141
|
+
function_line = next(
|
|
142
|
+
index
|
|
143
|
+
for index, line in enumerate(module_code_lines)
|
|
144
|
+
if line.startswith("export default function")
|
|
145
|
+
)
|
|
146
|
+
|
|
147
|
+
module_code_lines = [
|
|
148
|
+
line
|
|
149
|
+
for _, line in sorted(
|
|
150
|
+
enumerate(module_code_lines),
|
|
151
|
+
key=lambda x: (
|
|
152
|
+
not (x[1].startswith("import ") and x[0] < function_line),
|
|
153
|
+
x[0],
|
|
154
|
+
),
|
|
155
|
+
)
|
|
156
|
+
]
|
|
157
|
+
|
|
139
158
|
return "\n".join(
|
|
140
159
|
[
|
|
141
160
|
"//__reflex_evaluate",
|
reflex/components/el/element.py
CHANGED
reflex/components/el/element.pyi
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
from typing import Any, Dict, Optional, Union, overload
|
|
7
7
|
|
|
8
8
|
from reflex.components.component import Component
|
|
9
|
-
from reflex.event import
|
|
9
|
+
from reflex.event import EventType
|
|
10
10
|
from reflex.style import Style
|
|
11
11
|
from reflex.vars.base import Var
|
|
12
12
|
|
|
@@ -22,21 +22,21 @@ class Element(Component):
|
|
|
22
22
|
class_name: Optional[Any] = None,
|
|
23
23
|
autofocus: Optional[bool] = None,
|
|
24
24
|
custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None,
|
|
25
|
-
on_blur: Optional[EventType[
|
|
26
|
-
on_click: Optional[EventType[
|
|
27
|
-
on_context_menu: Optional[EventType[
|
|
28
|
-
on_double_click: Optional[EventType[
|
|
29
|
-
on_focus: Optional[EventType[
|
|
30
|
-
on_mount: Optional[EventType[
|
|
31
|
-
on_mouse_down: Optional[EventType[
|
|
32
|
-
on_mouse_enter: Optional[EventType[
|
|
33
|
-
on_mouse_leave: Optional[EventType[
|
|
34
|
-
on_mouse_move: Optional[EventType[
|
|
35
|
-
on_mouse_out: Optional[EventType[
|
|
36
|
-
on_mouse_over: Optional[EventType[
|
|
37
|
-
on_mouse_up: Optional[EventType[
|
|
38
|
-
on_scroll: Optional[EventType[
|
|
39
|
-
on_unmount: Optional[EventType[
|
|
25
|
+
on_blur: Optional[EventType[()]] = None,
|
|
26
|
+
on_click: Optional[EventType[()]] = None,
|
|
27
|
+
on_context_menu: Optional[EventType[()]] = None,
|
|
28
|
+
on_double_click: Optional[EventType[()]] = None,
|
|
29
|
+
on_focus: Optional[EventType[()]] = None,
|
|
30
|
+
on_mount: Optional[EventType[()]] = None,
|
|
31
|
+
on_mouse_down: Optional[EventType[()]] = None,
|
|
32
|
+
on_mouse_enter: Optional[EventType[()]] = None,
|
|
33
|
+
on_mouse_leave: Optional[EventType[()]] = None,
|
|
34
|
+
on_mouse_move: Optional[EventType[()]] = None,
|
|
35
|
+
on_mouse_out: Optional[EventType[()]] = None,
|
|
36
|
+
on_mouse_over: Optional[EventType[()]] = None,
|
|
37
|
+
on_mouse_up: Optional[EventType[()]] = None,
|
|
38
|
+
on_scroll: Optional[EventType[()]] = None,
|
|
39
|
+
on_unmount: Optional[EventType[()]] = None,
|
|
40
40
|
**props,
|
|
41
41
|
) -> "Element":
|
|
42
42
|
"""Create the component.
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
from typing import Any, Dict, Optional, Union, overload
|
|
7
7
|
|
|
8
8
|
from reflex.components.el.element import Element
|
|
9
|
-
from reflex.event import
|
|
9
|
+
from reflex.event import EventType
|
|
10
10
|
from reflex.style import Style
|
|
11
11
|
from reflex.vars.base import Var
|
|
12
12
|
|
|
@@ -46,21 +46,21 @@ class BaseHTML(Element):
|
|
|
46
46
|
class_name: Optional[Any] = None,
|
|
47
47
|
autofocus: Optional[bool] = None,
|
|
48
48
|
custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None,
|
|
49
|
-
on_blur: Optional[EventType[
|
|
50
|
-
on_click: Optional[EventType[
|
|
51
|
-
on_context_menu: Optional[EventType[
|
|
52
|
-
on_double_click: Optional[EventType[
|
|
53
|
-
on_focus: Optional[EventType[
|
|
54
|
-
on_mount: Optional[EventType[
|
|
55
|
-
on_mouse_down: Optional[EventType[
|
|
56
|
-
on_mouse_enter: Optional[EventType[
|
|
57
|
-
on_mouse_leave: Optional[EventType[
|
|
58
|
-
on_mouse_move: Optional[EventType[
|
|
59
|
-
on_mouse_out: Optional[EventType[
|
|
60
|
-
on_mouse_over: Optional[EventType[
|
|
61
|
-
on_mouse_up: Optional[EventType[
|
|
62
|
-
on_scroll: Optional[EventType[
|
|
63
|
-
on_unmount: Optional[EventType[
|
|
49
|
+
on_blur: Optional[EventType[()]] = None,
|
|
50
|
+
on_click: Optional[EventType[()]] = None,
|
|
51
|
+
on_context_menu: Optional[EventType[()]] = None,
|
|
52
|
+
on_double_click: Optional[EventType[()]] = None,
|
|
53
|
+
on_focus: Optional[EventType[()]] = None,
|
|
54
|
+
on_mount: Optional[EventType[()]] = None,
|
|
55
|
+
on_mouse_down: Optional[EventType[()]] = None,
|
|
56
|
+
on_mouse_enter: Optional[EventType[()]] = None,
|
|
57
|
+
on_mouse_leave: Optional[EventType[()]] = None,
|
|
58
|
+
on_mouse_move: Optional[EventType[()]] = None,
|
|
59
|
+
on_mouse_out: Optional[EventType[()]] = None,
|
|
60
|
+
on_mouse_over: Optional[EventType[()]] = None,
|
|
61
|
+
on_mouse_up: Optional[EventType[()]] = None,
|
|
62
|
+
on_scroll: Optional[EventType[()]] = None,
|
|
63
|
+
on_unmount: Optional[EventType[()]] = None,
|
|
64
64
|
**props,
|
|
65
65
|
) -> "BaseHTML":
|
|
66
66
|
"""Create the component.
|
|
@@ -102,7 +102,7 @@ class Fieldset(Element):
|
|
|
102
102
|
name: Var[Union[str, int, bool]]
|
|
103
103
|
|
|
104
104
|
|
|
105
|
-
def on_submit_event_spec() -> Tuple[Var[
|
|
105
|
+
def on_submit_event_spec() -> Tuple[Var[dict[str, Any]]]:
|
|
106
106
|
"""Event handler spec for the on_submit event.
|
|
107
107
|
|
|
108
108
|
Returns:
|
|
@@ -111,7 +111,7 @@ def on_submit_event_spec() -> Tuple[Var[Dict[str, Any]]]:
|
|
|
111
111
|
return (FORM_DATA,)
|
|
112
112
|
|
|
113
113
|
|
|
114
|
-
def on_submit_string_event_spec() -> Tuple[Var[
|
|
114
|
+
def on_submit_string_event_spec() -> Tuple[Var[dict[str, str]]]:
|
|
115
115
|
"""Event handler spec for the on_submit event.
|
|
116
116
|
|
|
117
117
|
Returns:
|
|
@@ -153,7 +153,7 @@ class Form(BaseHTML):
|
|
|
153
153
|
target: Var[Union[str, int, bool]]
|
|
154
154
|
|
|
155
155
|
# If true, the form will be cleared after submit.
|
|
156
|
-
reset_on_submit: Var[bool] = False
|
|
156
|
+
reset_on_submit: Var[bool] = Var.create(False)
|
|
157
157
|
|
|
158
158
|
# The name used to make this form's submit handler function unique.
|
|
159
159
|
handle_submit_unique_name: Var[str]
|
|
@@ -405,7 +405,7 @@ class Input(BaseHTML):
|
|
|
405
405
|
(value_var := Var.create(value))._var_type
|
|
406
406
|
):
|
|
407
407
|
props["value"] = ternary_operation(
|
|
408
|
-
(value_var != Var.create(None)) # pyright: ignore [
|
|
408
|
+
(value_var != Var.create(None)) # pyright: ignore [reportArgumentType]
|
|
409
409
|
& (value_var != Var(_js_expr="undefined")),
|
|
410
410
|
value,
|
|
411
411
|
Var.create(""),
|