reflex 0.5.10a3__py3-none-any.whl → 0.6.0a1__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/web/pages/utils.js.jinja2 +4 -4
- reflex/.templates/jinja/web/utils/context.js.jinja2 +1 -1
- reflex/.templates/jinja/web/utils/theme.js.jinja2 +1 -1
- reflex/__init__.py +3 -2
- reflex/__init__.pyi +2 -2
- reflex/app.py +43 -9
- reflex/base.py +3 -2
- reflex/compiler/compiler.py +6 -6
- reflex/compiler/utils.py +5 -3
- reflex/components/base/app_wrap.py +2 -4
- reflex/components/base/app_wrap.pyi +17 -17
- reflex/components/base/bare.py +7 -4
- reflex/components/base/body.pyi +17 -17
- reflex/components/base/document.pyi +81 -81
- reflex/components/base/error_boundary.py +10 -8
- reflex/components/base/error_boundary.pyi +20 -19
- reflex/components/base/fragment.pyi +17 -17
- reflex/components/base/head.pyi +33 -33
- reflex/components/base/link.pyi +34 -33
- reflex/components/base/meta.pyi +65 -65
- reflex/components/base/script.py +2 -1
- reflex/components/base/script.pyi +21 -20
- reflex/components/component.py +116 -145
- reflex/components/core/banner.py +59 -60
- reflex/components/core/banner.pyi +86 -150
- reflex/components/core/client_side_routing.py +2 -1
- reflex/components/core/client_side_routing.pyi +34 -33
- reflex/components/core/clipboard.py +2 -2
- reflex/components/core/clipboard.pyi +19 -18
- reflex/components/core/cond.py +21 -44
- reflex/components/core/debounce.py +6 -8
- reflex/components/core/debounce.pyi +19 -18
- reflex/components/core/foreach.py +5 -14
- reflex/components/core/html.pyi +18 -17
- reflex/components/core/match.py +36 -43
- reflex/components/core/upload.py +32 -25
- reflex/components/core/upload.pyi +84 -73
- reflex/components/datadisplay/code.py +55 -28
- reflex/components/datadisplay/code.pyi +20 -17
- reflex/components/datadisplay/dataeditor.py +17 -11
- reflex/components/datadisplay/dataeditor.pyi +34 -33
- reflex/components/el/__init__.py +0 -1
- reflex/components/el/__init__.pyi +0 -11
- reflex/components/el/element.pyi +17 -17
- reflex/components/el/elements/__init__.py +1 -7
- reflex/components/el/elements/__init__.pyi +1 -15
- reflex/components/el/elements/base.pyi +18 -17
- reflex/components/el/elements/forms.py +24 -31
- reflex/components/el/elements/forms.pyi +237 -236
- reflex/components/el/elements/inline.pyi +450 -449
- reflex/components/el/elements/media.py +0 -21
- reflex/components/el/elements/media.pyi +338 -337
- reflex/components/el/elements/metadata.py +3 -2
- reflex/components/el/elements/metadata.pyi +98 -97
- reflex/components/el/elements/other.pyi +114 -113
- reflex/components/el/elements/scripts.pyi +50 -49
- reflex/components/el/elements/sectioning.pyi +242 -241
- reflex/components/el/elements/tables.pyi +162 -161
- reflex/components/el/elements/typography.pyi +242 -241
- reflex/components/gridjs/datatable.py +13 -14
- reflex/components/gridjs/datatable.pyi +34 -33
- reflex/components/lucide/icon.py +2 -126
- reflex/components/lucide/icon.pyi +34 -142
- reflex/components/markdown/markdown.py +30 -35
- reflex/components/markdown/markdown.pyi +29 -32
- reflex/components/moment/moment.pyi +19 -18
- reflex/components/next/base.pyi +17 -17
- reflex/components/next/image.py +0 -4
- reflex/components/next/image.pyi +20 -19
- reflex/components/next/link.pyi +18 -17
- reflex/components/next/video.pyi +18 -17
- reflex/components/plotly/plotly.py +16 -28
- reflex/components/plotly/plotly.pyi +36 -35
- reflex/components/props.py +21 -10
- reflex/components/radix/__init__.pyi +1 -1
- reflex/components/radix/primitives/__init__.pyi +0 -1
- reflex/components/radix/primitives/accordion.py +7 -8
- reflex/components/radix/primitives/accordion.pyi +117 -116
- reflex/components/radix/primitives/base.pyi +34 -33
- reflex/components/radix/primitives/drawer.pyi +169 -168
- reflex/components/radix/primitives/form.pyi +168 -167
- reflex/components/radix/primitives/progress.pyi +82 -81
- reflex/components/radix/primitives/slider.pyi +84 -83
- reflex/components/radix/themes/base.py +8 -4
- reflex/components/radix/themes/base.pyi +114 -113
- reflex/components/radix/themes/color_mode.py +12 -21
- reflex/components/radix/themes/color_mode.pyi +67 -67
- reflex/components/radix/themes/components/__init__.pyi +1 -0
- reflex/components/radix/themes/components/alert_dialog.pyi +118 -117
- reflex/components/radix/themes/components/aspect_ratio.pyi +18 -17
- reflex/components/radix/themes/components/avatar.pyi +18 -17
- reflex/components/radix/themes/components/badge.pyi +18 -17
- reflex/components/radix/themes/components/button.pyi +18 -17
- reflex/components/radix/themes/components/callout.pyi +82 -81
- reflex/components/radix/themes/components/card.pyi +18 -17
- reflex/components/radix/themes/components/checkbox.py +2 -3
- reflex/components/radix/themes/components/checkbox.pyi +53 -52
- reflex/components/radix/themes/components/checkbox_cards.pyi +34 -33
- reflex/components/radix/themes/components/checkbox_group.pyi +34 -33
- reflex/components/radix/themes/components/context_menu.pyi +140 -139
- reflex/components/radix/themes/components/data_list.py +5 -0
- reflex/components/radix/themes/components/data_list.pyi +71 -65
- reflex/components/radix/themes/components/dialog.pyi +121 -120
- reflex/components/radix/themes/components/dropdown_menu.pyi +142 -141
- reflex/components/radix/themes/components/hover_card.pyi +68 -67
- reflex/components/radix/themes/components/icon_button.py +2 -1
- reflex/components/radix/themes/components/icon_button.pyi +18 -17
- reflex/components/radix/themes/components/inset.pyi +18 -17
- reflex/components/radix/themes/components/popover.pyi +73 -72
- reflex/components/radix/themes/components/progress.pyi +18 -17
- reflex/components/radix/themes/components/radio.pyi +18 -17
- reflex/components/radix/themes/components/radio_cards.pyi +35 -34
- reflex/components/radix/themes/components/radio_group.py +35 -31
- reflex/components/radix/themes/components/radio_group.pyi +73 -66
- reflex/components/radix/themes/components/scroll_area.pyi +18 -17
- reflex/components/radix/themes/components/segmented_control.pyi +35 -34
- reflex/components/radix/themes/components/select.py +2 -1
- reflex/components/radix/themes/components/select.pyi +155 -154
- reflex/components/radix/themes/components/separator.py +2 -3
- reflex/components/radix/themes/components/separator.pyi +18 -17
- reflex/components/radix/themes/components/skeleton.pyi +18 -17
- reflex/components/radix/themes/components/slider.py +2 -1
- reflex/components/radix/themes/components/slider.pyi +20 -19
- reflex/components/radix/themes/components/spinner.pyi +18 -17
- reflex/components/radix/themes/components/switch.pyi +19 -18
- reflex/components/radix/themes/components/table.pyi +114 -113
- reflex/components/radix/themes/components/tabs.pyi +84 -83
- reflex/components/radix/themes/components/text_area.pyi +21 -20
- reflex/components/radix/themes/components/text_field.py +0 -79
- reflex/components/radix/themes/components/text_field.pyi +57 -63
- reflex/components/radix/themes/components/tooltip.pyi +21 -20
- reflex/components/radix/themes/layout/base.pyi +18 -17
- reflex/components/radix/themes/layout/box.pyi +18 -17
- reflex/components/radix/themes/layout/center.pyi +18 -17
- reflex/components/radix/themes/layout/container.py +2 -3
- reflex/components/radix/themes/layout/container.pyi +18 -17
- reflex/components/radix/themes/layout/flex.pyi +18 -17
- reflex/components/radix/themes/layout/grid.pyi +18 -17
- reflex/components/radix/themes/layout/list.py +5 -4
- reflex/components/radix/themes/layout/list.pyi +86 -85
- reflex/components/radix/themes/layout/section.py +2 -3
- reflex/components/radix/themes/layout/section.pyi +18 -17
- reflex/components/radix/themes/layout/spacer.pyi +18 -17
- reflex/components/radix/themes/layout/stack.pyi +50 -49
- reflex/components/radix/themes/typography/blockquote.pyi +18 -17
- reflex/components/radix/themes/typography/code.pyi +18 -17
- reflex/components/radix/themes/typography/heading.pyi +18 -17
- reflex/components/radix/themes/typography/link.pyi +18 -17
- reflex/components/radix/themes/typography/text.pyi +114 -113
- reflex/components/react_player/audio.pyi +34 -33
- reflex/components/react_player/react_player.pyi +34 -33
- reflex/components/react_player/video.pyi +34 -33
- reflex/components/recharts/cartesian.py +23 -19
- reflex/components/recharts/cartesian.pyi +297 -296
- reflex/components/recharts/charts.py +6 -5
- reflex/components/recharts/charts.pyi +179 -178
- reflex/components/recharts/general.py +8 -7
- reflex/components/recharts/general.pyi +82 -81
- reflex/components/recharts/polar.py +14 -13
- reflex/components/recharts/polar.pyi +76 -75
- reflex/components/recharts/recharts.pyi +33 -33
- reflex/components/sonner/toast.py +30 -33
- reflex/components/sonner/toast.pyi +27 -25
- reflex/components/suneditor/editor.py +2 -1
- reflex/components/suneditor/editor.pyi +27 -26
- reflex/components/tags/iter_tag.py +16 -16
- reflex/components/tags/tag.py +8 -10
- reflex/constants/base.py +3 -1
- reflex/constants/event.py +1 -0
- reflex/event.py +89 -79
- reflex/experimental/__init__.py +25 -6
- reflex/experimental/client_state.py +34 -58
- reflex/experimental/hooks.py +13 -18
- reflex/experimental/layout.py +5 -5
- reflex/experimental/layout.pyi +84 -83
- reflex/{experimental/vars → ivars}/__init__.py +0 -1
- reflex/ivars/base.py +2180 -0
- reflex/ivars/function.py +200 -0
- reflex/ivars/number.py +1137 -0
- reflex/ivars/object.py +564 -0
- reflex/ivars/sequence.py +1601 -0
- reflex/model.py +22 -0
- reflex/reflex.py +4 -0
- reflex/state.py +388 -73
- reflex/style.py +52 -34
- reflex/testing.py +8 -3
- reflex/utils/exceptions.py +12 -0
- reflex/utils/exec.py +0 -14
- reflex/utils/format.py +74 -223
- reflex/utils/net.py +43 -0
- reflex/utils/path_ops.py +13 -1
- reflex/utils/prerequisites.py +46 -26
- reflex/utils/pyi_generator.py +5 -4
- reflex/utils/serializers.py +13 -31
- reflex/utils/types.py +44 -9
- reflex/vars.py +127 -2230
- {reflex-0.5.10a3.dist-info → reflex-0.6.0a1.dist-info}/METADATA +4 -6
- reflex-0.6.0a1.dist-info/RECORD +384 -0
- reflex/.templates/apps/demo/.gitignore +0 -4
- reflex/.templates/apps/demo/assets/favicon.ico +0 -0
- reflex/.templates/apps/demo/assets/github.svg +0 -10
- reflex/.templates/apps/demo/assets/icon.svg +0 -37
- reflex/.templates/apps/demo/assets/logo.svg +0 -68
- reflex/.templates/apps/demo/assets/paneleft.svg +0 -13
- reflex/.templates/apps/demo/code/__init__.py +0 -1
- reflex/.templates/apps/demo/code/demo.py +0 -127
- reflex/.templates/apps/demo/code/pages/__init__.py +0 -7
- reflex/.templates/apps/demo/code/pages/chatapp.py +0 -31
- reflex/.templates/apps/demo/code/pages/datatable.py +0 -360
- reflex/.templates/apps/demo/code/pages/forms.py +0 -257
- reflex/.templates/apps/demo/code/pages/graphing.py +0 -253
- reflex/.templates/apps/demo/code/pages/home.py +0 -56
- reflex/.templates/apps/demo/code/sidebar.py +0 -178
- reflex/.templates/apps/demo/code/state.py +0 -22
- reflex/.templates/apps/demo/code/states/form_state.py +0 -40
- reflex/.templates/apps/demo/code/states/pie_state.py +0 -47
- reflex/.templates/apps/demo/code/styles.py +0 -68
- reflex/.templates/apps/demo/code/webui/__init__.py +0 -0
- reflex/.templates/apps/demo/code/webui/components/__init__.py +0 -4
- reflex/.templates/apps/demo/code/webui/components/chat.py +0 -118
- reflex/.templates/apps/demo/code/webui/components/loading_icon.py +0 -19
- reflex/.templates/apps/demo/code/webui/components/modal.py +0 -56
- reflex/.templates/apps/demo/code/webui/components/navbar.py +0 -70
- reflex/.templates/apps/demo/code/webui/components/sidebar.py +0 -66
- reflex/.templates/apps/demo/code/webui/state.py +0 -146
- reflex/.templates/apps/demo/code/webui/styles.py +0 -88
- reflex/experimental/vars/base.py +0 -583
- reflex/experimental/vars/function.py +0 -290
- reflex/experimental/vars/number.py +0 -1458
- reflex/experimental/vars/object.py +0 -804
- reflex/experimental/vars/sequence.py +0 -1764
- reflex/utils/watch.py +0 -96
- reflex/vars.pyi +0 -218
- reflex-0.5.10a3.dist-info/RECORD +0 -413
- {reflex-0.5.10a3.dist-info → reflex-0.6.0a1.dist-info}/LICENSE +0 -0
- {reflex-0.5.10a3.dist-info → reflex-0.6.0a1.dist-info}/WHEEL +0 -0
- {reflex-0.5.10a3.dist-info → reflex-0.6.0a1.dist-info}/entry_points.txt +0 -0
|
@@ -10,9 +10,10 @@ from reflex.components.component import Component, ComponentNamespace
|
|
|
10
10
|
from reflex.components.lucide.icon import Icon
|
|
11
11
|
from reflex.components.props import PropsBase
|
|
12
12
|
from reflex.event import EventHandler, EventSpec
|
|
13
|
+
from reflex.ivars.base import ImmutableVar
|
|
13
14
|
from reflex.style import Style
|
|
14
15
|
from reflex.utils.serializers import serializer
|
|
15
|
-
from reflex.vars import
|
|
16
|
+
from reflex.vars import Var
|
|
16
17
|
|
|
17
18
|
LiteralPosition = Literal[
|
|
18
19
|
"top-left",
|
|
@@ -22,7 +23,7 @@ LiteralPosition = Literal[
|
|
|
22
23
|
"bottom-center",
|
|
23
24
|
"bottom-right",
|
|
24
25
|
]
|
|
25
|
-
toast_ref =
|
|
26
|
+
toast_ref = ImmutableVar.create_safe("refs['__toast']")
|
|
26
27
|
|
|
27
28
|
class ToastAction(Base):
|
|
28
29
|
label: str
|
|
@@ -32,7 +33,8 @@ class ToastAction(Base):
|
|
|
32
33
|
def serialize_action(action: ToastAction) -> dict: ...
|
|
33
34
|
|
|
34
35
|
class ToastProps(PropsBase):
|
|
35
|
-
|
|
36
|
+
title: Optional[Union[str, ImmutableVar]]
|
|
37
|
+
description: Optional[Union[str, ImmutableVar]]
|
|
36
38
|
close_button: Optional[bool]
|
|
37
39
|
invert: Optional[bool]
|
|
38
40
|
important: Optional[bool]
|
|
@@ -41,7 +43,7 @@ class ToastProps(PropsBase):
|
|
|
41
43
|
dismissible: Optional[bool]
|
|
42
44
|
action: Optional[ToastAction]
|
|
43
45
|
cancel: Optional[ToastAction]
|
|
44
|
-
id: Optional[Union[str,
|
|
46
|
+
id: Optional[Union[str, ImmutableVar]]
|
|
45
47
|
unstyled: Optional[bool]
|
|
46
48
|
style: Optional[Style]
|
|
47
49
|
action_button_styles: Optional[Style]
|
|
@@ -59,19 +61,19 @@ class ToastProps(PropsBase):
|
|
|
59
61
|
class Toaster(Component):
|
|
60
62
|
is_used: ClassVar[bool] = False
|
|
61
63
|
|
|
62
|
-
def add_hooks(self) -> list[
|
|
64
|
+
def add_hooks(self) -> list[ImmutableVar | str]: ...
|
|
63
65
|
@staticmethod
|
|
64
66
|
def send_toast(
|
|
65
67
|
message: str = "", level: str | None = None, **props
|
|
66
68
|
) -> EventSpec: ...
|
|
67
69
|
@staticmethod
|
|
68
|
-
def toast_info(message: str, **kwargs): ...
|
|
70
|
+
def toast_info(message: str = "", **kwargs): ...
|
|
69
71
|
@staticmethod
|
|
70
|
-
def toast_warning(message: str, **kwargs): ...
|
|
72
|
+
def toast_warning(message: str = "", **kwargs): ...
|
|
71
73
|
@staticmethod
|
|
72
|
-
def toast_error(message: str, **kwargs): ...
|
|
74
|
+
def toast_error(message: str = "", **kwargs): ...
|
|
73
75
|
@staticmethod
|
|
74
|
-
def toast_success(message: str, **kwargs): ...
|
|
76
|
+
def toast_success(message: str = "", **kwargs): ...
|
|
75
77
|
@staticmethod
|
|
76
78
|
def toast_dismiss(id: Var | str | None = None): ...
|
|
77
79
|
@overload
|
|
@@ -119,51 +121,51 @@ class Toaster(Component):
|
|
|
119
121
|
id: Optional[Any] = None,
|
|
120
122
|
class_name: Optional[Any] = None,
|
|
121
123
|
autofocus: Optional[bool] = None,
|
|
122
|
-
custom_attrs: Optional[Dict[str, Union[
|
|
124
|
+
custom_attrs: Optional[Dict[str, Union[ImmutableVar, str]]] = None,
|
|
123
125
|
on_blur: Optional[
|
|
124
|
-
Union[EventHandler, EventSpec, list, Callable,
|
|
126
|
+
Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
|
|
125
127
|
] = None,
|
|
126
128
|
on_click: Optional[
|
|
127
|
-
Union[EventHandler, EventSpec, list, Callable,
|
|
129
|
+
Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
|
|
128
130
|
] = None,
|
|
129
131
|
on_context_menu: Optional[
|
|
130
|
-
Union[EventHandler, EventSpec, list, Callable,
|
|
132
|
+
Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
|
|
131
133
|
] = None,
|
|
132
134
|
on_double_click: Optional[
|
|
133
|
-
Union[EventHandler, EventSpec, list, Callable,
|
|
135
|
+
Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
|
|
134
136
|
] = None,
|
|
135
137
|
on_focus: Optional[
|
|
136
|
-
Union[EventHandler, EventSpec, list, Callable,
|
|
138
|
+
Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
|
|
137
139
|
] = None,
|
|
138
140
|
on_mount: Optional[
|
|
139
|
-
Union[EventHandler, EventSpec, list, Callable,
|
|
141
|
+
Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
|
|
140
142
|
] = None,
|
|
141
143
|
on_mouse_down: Optional[
|
|
142
|
-
Union[EventHandler, EventSpec, list, Callable,
|
|
144
|
+
Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
|
|
143
145
|
] = None,
|
|
144
146
|
on_mouse_enter: Optional[
|
|
145
|
-
Union[EventHandler, EventSpec, list, Callable,
|
|
147
|
+
Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
|
|
146
148
|
] = None,
|
|
147
149
|
on_mouse_leave: Optional[
|
|
148
|
-
Union[EventHandler, EventSpec, list, Callable,
|
|
150
|
+
Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
|
|
149
151
|
] = None,
|
|
150
152
|
on_mouse_move: Optional[
|
|
151
|
-
Union[EventHandler, EventSpec, list, Callable,
|
|
153
|
+
Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
|
|
152
154
|
] = None,
|
|
153
155
|
on_mouse_out: Optional[
|
|
154
|
-
Union[EventHandler, EventSpec, list, Callable,
|
|
156
|
+
Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
|
|
155
157
|
] = None,
|
|
156
158
|
on_mouse_over: Optional[
|
|
157
|
-
Union[EventHandler, EventSpec, list, Callable,
|
|
159
|
+
Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
|
|
158
160
|
] = None,
|
|
159
161
|
on_mouse_up: Optional[
|
|
160
|
-
Union[EventHandler, EventSpec, list, Callable,
|
|
162
|
+
Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
|
|
161
163
|
] = None,
|
|
162
164
|
on_scroll: Optional[
|
|
163
|
-
Union[EventHandler, EventSpec, list, Callable,
|
|
165
|
+
Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
|
|
164
166
|
] = None,
|
|
165
167
|
on_unmount: Optional[
|
|
166
|
-
Union[EventHandler, EventSpec, list, Callable,
|
|
168
|
+
Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
|
|
167
169
|
] = None,
|
|
168
170
|
**props,
|
|
169
171
|
) -> "Toaster":
|
|
@@ -8,6 +8,7 @@ from typing import Dict, List, Literal, Optional, Union
|
|
|
8
8
|
from reflex.base import Base
|
|
9
9
|
from reflex.components.component import Component, NoSSRComponent
|
|
10
10
|
from reflex.event import EventHandler
|
|
11
|
+
from reflex.ivars.base import ImmutableVar
|
|
11
12
|
from reflex.utils.format import to_camel_case
|
|
12
13
|
from reflex.utils.imports import ImportDict, ImportVar
|
|
13
14
|
from reflex.vars import Var
|
|
@@ -234,7 +235,7 @@ class Editor(NoSSRComponent):
|
|
|
234
235
|
ValueError: If set_options is a state Var.
|
|
235
236
|
"""
|
|
236
237
|
if set_options is not None:
|
|
237
|
-
if isinstance(set_options,
|
|
238
|
+
if isinstance(set_options, ImmutableVar):
|
|
238
239
|
raise ValueError("EditorOptions cannot be a state Var")
|
|
239
240
|
props["set_options"] = {
|
|
240
241
|
to_camel_case(k): v
|
|
@@ -9,9 +9,10 @@ from typing import Any, Callable, Dict, List, Literal, Optional, Union, overload
|
|
|
9
9
|
from reflex.base import Base
|
|
10
10
|
from reflex.components.component import NoSSRComponent
|
|
11
11
|
from reflex.event import EventHandler, EventSpec
|
|
12
|
+
from reflex.ivars.base import ImmutableVar
|
|
12
13
|
from reflex.style import Style
|
|
13
14
|
from reflex.utils.imports import ImportDict
|
|
14
|
-
from reflex.vars import
|
|
15
|
+
from reflex.vars import Var
|
|
15
16
|
|
|
16
17
|
class EditorButtonList(list, enum.Enum):
|
|
17
18
|
BASIC = [["font", "fontSize"], ["fontColor"], ["horizontalRule"], ["link", "image"]]
|
|
@@ -121,78 +122,78 @@ class Editor(NoSSRComponent):
|
|
|
121
122
|
id: Optional[Any] = None,
|
|
122
123
|
class_name: Optional[Any] = None,
|
|
123
124
|
autofocus: Optional[bool] = None,
|
|
124
|
-
custom_attrs: Optional[Dict[str, Union[
|
|
125
|
+
custom_attrs: Optional[Dict[str, Union[ImmutableVar, str]]] = None,
|
|
125
126
|
on_blur: Optional[
|
|
126
|
-
Union[EventHandler, EventSpec, list, Callable,
|
|
127
|
+
Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
|
|
127
128
|
] = None,
|
|
128
129
|
on_change: Optional[
|
|
129
|
-
Union[EventHandler, EventSpec, list, Callable,
|
|
130
|
+
Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
|
|
130
131
|
] = None,
|
|
131
132
|
on_click: Optional[
|
|
132
|
-
Union[EventHandler, EventSpec, list, Callable,
|
|
133
|
+
Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
|
|
133
134
|
] = None,
|
|
134
135
|
on_context_menu: Optional[
|
|
135
|
-
Union[EventHandler, EventSpec, list, Callable,
|
|
136
|
+
Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
|
|
136
137
|
] = None,
|
|
137
138
|
on_copy: Optional[
|
|
138
|
-
Union[EventHandler, EventSpec, list, Callable,
|
|
139
|
+
Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
|
|
139
140
|
] = None,
|
|
140
141
|
on_cut: Optional[
|
|
141
|
-
Union[EventHandler, EventSpec, list, Callable,
|
|
142
|
+
Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
|
|
142
143
|
] = None,
|
|
143
144
|
on_double_click: Optional[
|
|
144
|
-
Union[EventHandler, EventSpec, list, Callable,
|
|
145
|
+
Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
|
|
145
146
|
] = None,
|
|
146
147
|
on_focus: Optional[
|
|
147
|
-
Union[EventHandler, EventSpec, list, Callable,
|
|
148
|
+
Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
|
|
148
149
|
] = None,
|
|
149
150
|
on_input: Optional[
|
|
150
|
-
Union[EventHandler, EventSpec, list, Callable,
|
|
151
|
+
Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
|
|
151
152
|
] = None,
|
|
152
153
|
on_load: Optional[
|
|
153
|
-
Union[EventHandler, EventSpec, list, Callable,
|
|
154
|
+
Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
|
|
154
155
|
] = None,
|
|
155
156
|
on_mount: Optional[
|
|
156
|
-
Union[EventHandler, EventSpec, list, Callable,
|
|
157
|
+
Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
|
|
157
158
|
] = None,
|
|
158
159
|
on_mouse_down: Optional[
|
|
159
|
-
Union[EventHandler, EventSpec, list, Callable,
|
|
160
|
+
Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
|
|
160
161
|
] = None,
|
|
161
162
|
on_mouse_enter: Optional[
|
|
162
|
-
Union[EventHandler, EventSpec, list, Callable,
|
|
163
|
+
Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
|
|
163
164
|
] = None,
|
|
164
165
|
on_mouse_leave: Optional[
|
|
165
|
-
Union[EventHandler, EventSpec, list, Callable,
|
|
166
|
+
Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
|
|
166
167
|
] = None,
|
|
167
168
|
on_mouse_move: Optional[
|
|
168
|
-
Union[EventHandler, EventSpec, list, Callable,
|
|
169
|
+
Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
|
|
169
170
|
] = None,
|
|
170
171
|
on_mouse_out: Optional[
|
|
171
|
-
Union[EventHandler, EventSpec, list, Callable,
|
|
172
|
+
Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
|
|
172
173
|
] = None,
|
|
173
174
|
on_mouse_over: Optional[
|
|
174
|
-
Union[EventHandler, EventSpec, list, Callable,
|
|
175
|
+
Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
|
|
175
176
|
] = None,
|
|
176
177
|
on_mouse_up: Optional[
|
|
177
|
-
Union[EventHandler, EventSpec, list, Callable,
|
|
178
|
+
Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
|
|
178
179
|
] = None,
|
|
179
180
|
on_paste: Optional[
|
|
180
|
-
Union[EventHandler, EventSpec, list, Callable,
|
|
181
|
+
Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
|
|
181
182
|
] = None,
|
|
182
183
|
on_resize_editor: Optional[
|
|
183
|
-
Union[EventHandler, EventSpec, list, Callable,
|
|
184
|
+
Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
|
|
184
185
|
] = None,
|
|
185
186
|
on_scroll: Optional[
|
|
186
|
-
Union[EventHandler, EventSpec, list, Callable,
|
|
187
|
+
Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
|
|
187
188
|
] = None,
|
|
188
189
|
on_unmount: Optional[
|
|
189
|
-
Union[EventHandler, EventSpec, list, Callable,
|
|
190
|
+
Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
|
|
190
191
|
] = None,
|
|
191
192
|
toggle_code_view: Optional[
|
|
192
|
-
Union[EventHandler, EventSpec, list, Callable,
|
|
193
|
+
Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
|
|
193
194
|
] = None,
|
|
194
195
|
toggle_full_screen: Optional[
|
|
195
|
-
Union[EventHandler, EventSpec, list, Callable,
|
|
196
|
+
Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
|
|
196
197
|
] = None,
|
|
197
198
|
**props,
|
|
198
199
|
) -> "Editor":
|
|
@@ -6,7 +6,8 @@ import inspect
|
|
|
6
6
|
from typing import TYPE_CHECKING, Any, Callable, List, Tuple, Type, Union, get_args
|
|
7
7
|
|
|
8
8
|
from reflex.components.tags.tag import Tag
|
|
9
|
-
from reflex.
|
|
9
|
+
from reflex.ivars.base import ImmutableVar
|
|
10
|
+
from reflex.vars import Var
|
|
10
11
|
|
|
11
12
|
if TYPE_CHECKING:
|
|
12
13
|
from reflex.components.component import Component
|
|
@@ -33,15 +34,16 @@ class IterTag(Tag):
|
|
|
33
34
|
Returns:
|
|
34
35
|
The type of the iterable var.
|
|
35
36
|
"""
|
|
37
|
+
iterable = self.iterable.upcast()
|
|
36
38
|
try:
|
|
37
|
-
if
|
|
39
|
+
if iterable._var_type.mro()[0] == dict:
|
|
38
40
|
# Arg is a tuple of (key, value).
|
|
39
|
-
return Tuple[get_args(
|
|
40
|
-
elif
|
|
41
|
+
return Tuple[get_args(iterable._var_type)] # type: ignore
|
|
42
|
+
elif iterable._var_type.mro()[0] == tuple:
|
|
41
43
|
# Arg is a union of any possible values in the tuple.
|
|
42
|
-
return Union[get_args(
|
|
44
|
+
return Union[get_args(iterable._var_type)] # type: ignore
|
|
43
45
|
else:
|
|
44
|
-
return get_args(
|
|
46
|
+
return get_args(iterable._var_type)[0]
|
|
45
47
|
except Exception:
|
|
46
48
|
return Any
|
|
47
49
|
|
|
@@ -53,10 +55,10 @@ class IterTag(Tag):
|
|
|
53
55
|
Returns:
|
|
54
56
|
The index var.
|
|
55
57
|
"""
|
|
56
|
-
return
|
|
58
|
+
return ImmutableVar(
|
|
57
59
|
_var_name=self.index_var_name,
|
|
58
60
|
_var_type=int,
|
|
59
|
-
)
|
|
61
|
+
).guess_type()
|
|
60
62
|
|
|
61
63
|
def get_arg_var(self) -> Var:
|
|
62
64
|
"""Get the arg var for the tag (with curly braces).
|
|
@@ -66,10 +68,10 @@ class IterTag(Tag):
|
|
|
66
68
|
Returns:
|
|
67
69
|
The arg var.
|
|
68
70
|
"""
|
|
69
|
-
return
|
|
71
|
+
return ImmutableVar(
|
|
70
72
|
_var_name=self.arg_var_name,
|
|
71
73
|
_var_type=self.get_iterable_var_type(),
|
|
72
|
-
)
|
|
74
|
+
).guess_type()
|
|
73
75
|
|
|
74
76
|
def get_index_var_arg(self) -> Var:
|
|
75
77
|
"""Get the index var for the tag (without curly braces).
|
|
@@ -79,11 +81,10 @@ class IterTag(Tag):
|
|
|
79
81
|
Returns:
|
|
80
82
|
The index var.
|
|
81
83
|
"""
|
|
82
|
-
return
|
|
84
|
+
return ImmutableVar(
|
|
83
85
|
_var_name=self.index_var_name,
|
|
84
86
|
_var_type=int,
|
|
85
|
-
|
|
86
|
-
)
|
|
87
|
+
).guess_type()
|
|
87
88
|
|
|
88
89
|
def get_arg_var_arg(self) -> Var:
|
|
89
90
|
"""Get the arg var for the tag (without curly braces).
|
|
@@ -93,11 +94,10 @@ class IterTag(Tag):
|
|
|
93
94
|
Returns:
|
|
94
95
|
The arg var.
|
|
95
96
|
"""
|
|
96
|
-
return
|
|
97
|
+
return ImmutableVar(
|
|
97
98
|
_var_name=self.arg_var_name,
|
|
98
99
|
_var_type=self.get_iterable_var_type(),
|
|
99
|
-
|
|
100
|
-
)
|
|
100
|
+
).guess_type()
|
|
101
101
|
|
|
102
102
|
def render_component(self) -> Component:
|
|
103
103
|
"""Render the component.
|
reflex/components/tags/tag.py
CHANGED
|
@@ -6,8 +6,8 @@ from typing import Any, Dict, List, Optional, Set, Tuple, Union
|
|
|
6
6
|
|
|
7
7
|
from reflex.base import Base
|
|
8
8
|
from reflex.event import EventChain
|
|
9
|
+
from reflex.ivars.base import ImmutableVar, LiteralVar
|
|
9
10
|
from reflex.utils import format, types
|
|
10
|
-
from reflex.vars import Var
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
class Tag(Base):
|
|
@@ -26,7 +26,7 @@ class Tag(Base):
|
|
|
26
26
|
args: Optional[Tuple[str, ...]] = None
|
|
27
27
|
|
|
28
28
|
# Special props that aren't key value pairs.
|
|
29
|
-
special_props: Set[
|
|
29
|
+
special_props: Set[ImmutableVar] = set()
|
|
30
30
|
|
|
31
31
|
# The children components.
|
|
32
32
|
children: List[Any] = []
|
|
@@ -41,7 +41,7 @@ class Tag(Base):
|
|
|
41
41
|
# Convert any props to vars.
|
|
42
42
|
if "props" in kwargs:
|
|
43
43
|
kwargs["props"] = {
|
|
44
|
-
name:
|
|
44
|
+
name: LiteralVar.create(value)
|
|
45
45
|
for name, value in kwargs["props"].items()
|
|
46
46
|
}
|
|
47
47
|
super().__init__(*args, **kwargs)
|
|
@@ -63,14 +63,12 @@ class Tag(Base):
|
|
|
63
63
|
Returns:
|
|
64
64
|
The tag with the props added.
|
|
65
65
|
"""
|
|
66
|
-
from reflex.components.core.colors import Color
|
|
67
|
-
|
|
68
66
|
self.props.update(
|
|
69
67
|
{
|
|
70
|
-
format.to_camel_case(name, allow_hyphens=True):
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
68
|
+
format.to_camel_case(name, allow_hyphens=True): (
|
|
69
|
+
prop
|
|
70
|
+
if types._isinstance(prop, Union[EventChain, dict])
|
|
71
|
+
else LiteralVar.create(prop)
|
|
74
72
|
) # rx.color is always a string
|
|
75
73
|
for name, prop in kwargs.items()
|
|
76
74
|
if self.is_valid_prop(prop)
|
|
@@ -94,7 +92,7 @@ class Tag(Base):
|
|
|
94
92
|
return self
|
|
95
93
|
|
|
96
94
|
@staticmethod
|
|
97
|
-
def is_valid_prop(prop: Optional[
|
|
95
|
+
def is_valid_prop(prop: Optional[ImmutableVar]) -> bool:
|
|
98
96
|
"""Check if the prop is valid.
|
|
99
97
|
|
|
100
98
|
Args:
|
reflex/constants/base.py
CHANGED
|
@@ -45,6 +45,8 @@ class Dirs(SimpleNamespace):
|
|
|
45
45
|
REFLEX_JSON = "reflex.json"
|
|
46
46
|
# The name of the postcss config file.
|
|
47
47
|
POSTCSS_JS = "postcss.config.js"
|
|
48
|
+
# The name of the states directory.
|
|
49
|
+
STATES = "states"
|
|
48
50
|
|
|
49
51
|
|
|
50
52
|
class Reflex(SimpleNamespace):
|
|
@@ -103,7 +105,7 @@ class Templates(SimpleNamespace):
|
|
|
103
105
|
|
|
104
106
|
# The reflex.build backend host
|
|
105
107
|
REFLEX_BUILD_BACKEND = os.environ.get(
|
|
106
|
-
"REFLEX_BUILD_BACKEND", "https://
|
|
108
|
+
"REFLEX_BUILD_BACKEND", "https://flexgen-prod-flexgen.fly.dev"
|
|
107
109
|
)
|
|
108
110
|
|
|
109
111
|
# The URL to redirect to reflex.build
|