reflex 0.6.2a2__py3-none-any.whl → 0.6.3__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/__init__.py +3 -2
- reflex/__init__.pyi +3 -1
- reflex/components/base/app_wrap.pyi +17 -37
- reflex/components/base/body.pyi +17 -37
- reflex/components/base/document.pyi +77 -177
- reflex/components/base/error_boundary.pyi +18 -38
- reflex/components/base/fragment.pyi +17 -37
- reflex/components/base/head.pyi +32 -72
- reflex/components/base/link.pyi +32 -72
- reflex/components/base/meta.pyi +62 -142
- reflex/components/base/script.py +4 -4
- reflex/components/base/script.pyi +20 -40
- reflex/components/component.py +30 -19
- reflex/components/core/banner.pyi +77 -177
- reflex/components/core/client_side_routing.pyi +32 -72
- reflex/components/core/clipboard.py +3 -3
- reflex/components/core/clipboard.pyi +18 -38
- reflex/components/core/debounce.py +2 -2
- reflex/components/core/debounce.pyi +18 -38
- reflex/components/core/html.pyi +17 -37
- reflex/components/core/upload.py +4 -4
- reflex/components/core/upload.pyi +65 -145
- reflex/components/datadisplay/code.pyi +32 -72
- reflex/components/datadisplay/dataeditor.py +13 -13
- reflex/components/datadisplay/dataeditor.pyi +33 -83
- reflex/components/dynamic.py +6 -7
- reflex/components/el/__init__.pyi +1 -0
- reflex/components/el/element.pyi +17 -37
- reflex/components/el/elements/base.pyi +17 -37
- reflex/components/el/elements/forms.py +29 -14
- reflex/components/el/elements/forms.pyi +222 -504
- reflex/components/el/elements/inline.pyi +422 -982
- reflex/components/el/elements/media.pyi +377 -877
- reflex/components/el/elements/metadata.pyi +92 -212
- reflex/components/el/elements/other.pyi +107 -247
- reflex/components/el/elements/scripts.pyi +47 -107
- reflex/components/el/elements/sectioning.pyi +227 -527
- reflex/components/el/elements/tables.pyi +152 -352
- reflex/components/el/elements/typography.pyi +227 -527
- reflex/components/gridjs/datatable.py +2 -2
- reflex/components/gridjs/datatable.pyi +32 -72
- reflex/components/lucide/icon.pyi +32 -72
- reflex/components/markdown/markdown.pyi +16 -36
- reflex/components/moment/moment.py +2 -2
- reflex/components/moment/moment.pyi +18 -38
- reflex/components/next/base.pyi +17 -37
- reflex/components/next/image.py +3 -3
- reflex/components/next/image.pyi +19 -39
- reflex/components/next/link.pyi +17 -37
- reflex/components/next/video.pyi +17 -37
- reflex/components/plotly/plotly.py +1 -1
- reflex/components/plotly/plotly.pyi +35 -87
- reflex/components/radix/primitives/accordion.py +14 -2
- reflex/components/radix/primitives/accordion.pyi +110 -250
- reflex/components/radix/primitives/base.pyi +32 -72
- reflex/components/radix/primitives/drawer.py +30 -12
- reflex/components/radix/primitives/drawer.pyi +159 -373
- reflex/components/radix/primitives/form.py +3 -3
- reflex/components/radix/primitives/form.pyi +158 -364
- reflex/components/radix/primitives/progress.pyi +77 -177
- reflex/components/radix/primitives/slider.py +17 -3
- reflex/components/radix/primitives/slider.pyi +81 -183
- reflex/components/radix/themes/base.pyi +107 -247
- reflex/components/radix/themes/color_mode.pyi +48 -117
- reflex/components/radix/themes/components/alert_dialog.py +5 -5
- reflex/components/radix/themes/components/alert_dialog.pyi +111 -259
- reflex/components/radix/themes/components/aspect_ratio.pyi +17 -37
- reflex/components/radix/themes/components/avatar.pyi +17 -37
- reflex/components/radix/themes/components/badge.pyi +17 -37
- reflex/components/radix/themes/components/button.pyi +17 -37
- reflex/components/radix/themes/components/callout.pyi +77 -177
- reflex/components/radix/themes/components/card.pyi +17 -37
- reflex/components/radix/themes/components/checkbox.py +3 -3
- reflex/components/radix/themes/components/checkbox.pyi +50 -110
- reflex/components/radix/themes/components/checkbox_cards.pyi +32 -72
- reflex/components/radix/themes/components/checkbox_group.pyi +32 -72
- reflex/components/radix/themes/components/context_menu.py +11 -11
- reflex/components/radix/themes/components/context_menu.pyi +132 -312
- reflex/components/radix/themes/components/data_list.pyi +62 -142
- reflex/components/radix/themes/components/dialog.py +7 -7
- reflex/components/radix/themes/components/dialog.pyi +114 -268
- reflex/components/radix/themes/components/dropdown_menu.py +13 -13
- reflex/components/radix/themes/components/dropdown_menu.pyi +134 -316
- reflex/components/radix/themes/components/hover_card.py +2 -2
- reflex/components/radix/themes/components/hover_card.pyi +64 -148
- reflex/components/radix/themes/components/icon_button.pyi +17 -37
- reflex/components/radix/themes/components/inset.pyi +17 -37
- reflex/components/radix/themes/components/popover.py +8 -8
- reflex/components/radix/themes/components/popover.pyi +69 -163
- reflex/components/radix/themes/components/progress.pyi +17 -37
- reflex/components/radix/themes/components/radio.pyi +17 -37
- reflex/components/radix/themes/components/radio_cards.py +2 -2
- reflex/components/radix/themes/components/radio_cards.pyi +33 -75
- reflex/components/radix/themes/components/radio_group.py +4 -4
- reflex/components/radix/themes/components/radio_group.pyi +63 -143
- reflex/components/radix/themes/components/scroll_area.pyi +17 -37
- reflex/components/radix/themes/components/segmented_control.py +14 -2
- reflex/components/radix/themes/components/segmented_control.pyi +35 -73
- reflex/components/radix/themes/components/select.py +6 -5
- reflex/components/radix/themes/components/select.pyi +146 -338
- reflex/components/radix/themes/components/separator.pyi +17 -37
- reflex/components/radix/themes/components/skeleton.pyi +17 -37
- reflex/components/radix/themes/components/slider.py +19 -3
- reflex/components/radix/themes/components/slider.pyi +23 -41
- reflex/components/radix/themes/components/spinner.pyi +17 -37
- reflex/components/radix/themes/components/switch.py +2 -2
- reflex/components/radix/themes/components/switch.pyi +18 -38
- reflex/components/radix/themes/components/table.pyi +107 -247
- reflex/components/radix/themes/components/tabs.py +2 -2
- reflex/components/radix/themes/components/tabs.pyi +79 -179
- reflex/components/radix/themes/components/text_area.py +0 -16
- reflex/components/radix/themes/components/text_area.pyi +20 -42
- reflex/components/radix/themes/components/text_field.py +6 -6
- reflex/components/radix/themes/components/text_field.pyi +53 -117
- reflex/components/radix/themes/components/tooltip.py +4 -4
- reflex/components/radix/themes/components/tooltip.pyi +20 -46
- reflex/components/radix/themes/layout/base.pyi +17 -37
- reflex/components/radix/themes/layout/box.pyi +17 -37
- reflex/components/radix/themes/layout/center.pyi +17 -37
- reflex/components/radix/themes/layout/container.pyi +17 -37
- reflex/components/radix/themes/layout/flex.pyi +17 -37
- reflex/components/radix/themes/layout/grid.pyi +17 -37
- reflex/components/radix/themes/layout/list.pyi +77 -177
- reflex/components/radix/themes/layout/section.pyi +17 -37
- reflex/components/radix/themes/layout/spacer.pyi +17 -37
- reflex/components/radix/themes/layout/stack.pyi +47 -107
- reflex/components/radix/themes/typography/blockquote.pyi +17 -37
- reflex/components/radix/themes/typography/code.pyi +17 -37
- reflex/components/radix/themes/typography/heading.pyi +17 -37
- reflex/components/radix/themes/typography/link.pyi +17 -37
- reflex/components/radix/themes/typography/text.pyi +107 -247
- reflex/components/react_player/audio.pyi +33 -69
- reflex/components/react_player/react_player.py +17 -17
- reflex/components/react_player/react_player.pyi +33 -69
- reflex/components/react_player/video.pyi +33 -69
- reflex/components/recharts/cartesian.py +216 -186
- reflex/components/recharts/cartesian.pyi +623 -832
- reflex/components/recharts/charts.py +68 -65
- reflex/components/recharts/charts.pyi +213 -433
- reflex/components/recharts/general.py +27 -21
- reflex/components/recharts/general.pyi +94 -189
- reflex/components/recharts/polar.py +135 -97
- reflex/components/recharts/polar.pyi +219 -229
- reflex/components/recharts/recharts.py +5 -1
- reflex/components/recharts/recharts.pyi +37 -73
- reflex/components/sonner/toast.py +1 -1
- reflex/components/sonner/toast.pyi +17 -37
- reflex/components/suneditor/editor.pyi +26 -52
- reflex/components/tags/iter_tag.py +2 -2
- reflex/config.py +16 -0
- reflex/constants/__init__.py +2 -0
- reflex/constants/compiler.py +25 -0
- reflex/constants/installer.py +17 -16
- reflex/constants/state.py +11 -0
- reflex/constants/style.py +1 -1
- reflex/custom_components/custom_components.py +1 -1
- reflex/event.py +337 -84
- reflex/experimental/layout.pyi +78 -180
- reflex/istate/dynamic.py +3 -0
- reflex/state.py +197 -118
- reflex/style.py +5 -0
- reflex/testing.py +8 -5
- reflex/utils/compat.py +1 -3
- reflex/utils/exceptions.py +8 -0
- reflex/utils/path_ops.py +2 -2
- reflex/utils/prerequisites.py +2 -2
- reflex/utils/pyi_generator.py +44 -4
- reflex/utils/registry.py +17 -3
- reflex/utils/telemetry.py +1 -3
- reflex/utils/types.py +60 -16
- reflex/vars/__init__.py +2 -0
- reflex/vars/base.py +127 -72
- reflex/vars/object.py +5 -1
- reflex/vars/sequence.py +15 -3
- {reflex-0.6.2a2.dist-info → reflex-0.6.3.dist-info}/METADATA +3 -3
- {reflex-0.6.2a2.dist-info → reflex-0.6.3.dist-info}/RECORD +179 -177
- {reflex-0.6.2a2.dist-info → reflex-0.6.3.dist-info}/LICENSE +0 -0
- {reflex-0.6.2a2.dist-info → reflex-0.6.3.dist-info}/WHEEL +0 -0
- {reflex-0.6.2a2.dist-info → reflex-0.6.3.dist-info}/entry_points.txt +0 -0
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
# ------------------- DO NOT EDIT ----------------------
|
|
4
4
|
# This file was generated by `reflex/utils/pyi_generator.py`!
|
|
5
5
|
# ------------------------------------------------------
|
|
6
|
-
from typing import Any,
|
|
6
|
+
from typing import Any, Dict, Literal, Optional, Union, overload
|
|
7
7
|
|
|
8
8
|
from reflex.components.component import Component, MemoizationLeaf, NoSSRComponent
|
|
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
|
|
|
@@ -23,41 +23,21 @@ class Recharts(Component):
|
|
|
23
23
|
class_name: Optional[Any] = None,
|
|
24
24
|
autofocus: Optional[bool] = None,
|
|
25
25
|
custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
|
|
26
|
-
on_blur: Optional[
|
|
27
|
-
on_click: Optional[
|
|
28
|
-
on_context_menu: Optional[
|
|
29
|
-
|
|
30
|
-
] = None,
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
] = None,
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
] = None,
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
] = None,
|
|
42
|
-
on_mouse_leave: Optional[
|
|
43
|
-
Union[EventHandler, EventSpec, list, Callable, Var]
|
|
44
|
-
] = None,
|
|
45
|
-
on_mouse_move: Optional[
|
|
46
|
-
Union[EventHandler, EventSpec, list, Callable, Var]
|
|
47
|
-
] = None,
|
|
48
|
-
on_mouse_out: Optional[
|
|
49
|
-
Union[EventHandler, EventSpec, list, Callable, Var]
|
|
50
|
-
] = None,
|
|
51
|
-
on_mouse_over: Optional[
|
|
52
|
-
Union[EventHandler, EventSpec, list, Callable, Var]
|
|
53
|
-
] = None,
|
|
54
|
-
on_mouse_up: Optional[
|
|
55
|
-
Union[EventHandler, EventSpec, list, Callable, Var]
|
|
56
|
-
] = None,
|
|
57
|
-
on_scroll: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
|
|
58
|
-
on_unmount: Optional[
|
|
59
|
-
Union[EventHandler, EventSpec, list, Callable, Var]
|
|
60
|
-
] = None,
|
|
26
|
+
on_blur: Optional[EventType[[]]] = None,
|
|
27
|
+
on_click: Optional[EventType[[]]] = None,
|
|
28
|
+
on_context_menu: Optional[EventType[[]]] = None,
|
|
29
|
+
on_double_click: Optional[EventType[[]]] = None,
|
|
30
|
+
on_focus: Optional[EventType[[]]] = None,
|
|
31
|
+
on_mount: Optional[EventType[[]]] = None,
|
|
32
|
+
on_mouse_down: Optional[EventType[[]]] = None,
|
|
33
|
+
on_mouse_enter: Optional[EventType[[]]] = None,
|
|
34
|
+
on_mouse_leave: Optional[EventType[[]]] = None,
|
|
35
|
+
on_mouse_move: Optional[EventType[[]]] = None,
|
|
36
|
+
on_mouse_out: Optional[EventType[[]]] = None,
|
|
37
|
+
on_mouse_over: Optional[EventType[[]]] = None,
|
|
38
|
+
on_mouse_up: Optional[EventType[[]]] = None,
|
|
39
|
+
on_scroll: Optional[EventType[[]]] = None,
|
|
40
|
+
on_unmount: Optional[EventType[[]]] = None,
|
|
61
41
|
**props,
|
|
62
42
|
) -> "Recharts":
|
|
63
43
|
"""Create the component.
|
|
@@ -89,41 +69,21 @@ class RechartsCharts(NoSSRComponent, MemoizationLeaf):
|
|
|
89
69
|
class_name: Optional[Any] = None,
|
|
90
70
|
autofocus: Optional[bool] = None,
|
|
91
71
|
custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
|
|
92
|
-
on_blur: Optional[
|
|
93
|
-
on_click: Optional[
|
|
94
|
-
on_context_menu: Optional[
|
|
95
|
-
|
|
96
|
-
] = None,
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
] = None,
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
] = None,
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
] = None,
|
|
108
|
-
on_mouse_leave: Optional[
|
|
109
|
-
Union[EventHandler, EventSpec, list, Callable, Var]
|
|
110
|
-
] = None,
|
|
111
|
-
on_mouse_move: Optional[
|
|
112
|
-
Union[EventHandler, EventSpec, list, Callable, Var]
|
|
113
|
-
] = None,
|
|
114
|
-
on_mouse_out: Optional[
|
|
115
|
-
Union[EventHandler, EventSpec, list, Callable, Var]
|
|
116
|
-
] = None,
|
|
117
|
-
on_mouse_over: Optional[
|
|
118
|
-
Union[EventHandler, EventSpec, list, Callable, Var]
|
|
119
|
-
] = None,
|
|
120
|
-
on_mouse_up: Optional[
|
|
121
|
-
Union[EventHandler, EventSpec, list, Callable, Var]
|
|
122
|
-
] = None,
|
|
123
|
-
on_scroll: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
|
|
124
|
-
on_unmount: Optional[
|
|
125
|
-
Union[EventHandler, EventSpec, list, Callable, Var]
|
|
126
|
-
] = None,
|
|
72
|
+
on_blur: Optional[EventType[[]]] = None,
|
|
73
|
+
on_click: Optional[EventType[[]]] = None,
|
|
74
|
+
on_context_menu: Optional[EventType[[]]] = None,
|
|
75
|
+
on_double_click: Optional[EventType[[]]] = None,
|
|
76
|
+
on_focus: Optional[EventType[[]]] = None,
|
|
77
|
+
on_mount: Optional[EventType[[]]] = None,
|
|
78
|
+
on_mouse_down: Optional[EventType[[]]] = None,
|
|
79
|
+
on_mouse_enter: Optional[EventType[[]]] = None,
|
|
80
|
+
on_mouse_leave: Optional[EventType[[]]] = None,
|
|
81
|
+
on_mouse_move: Optional[EventType[[]]] = None,
|
|
82
|
+
on_mouse_out: Optional[EventType[[]]] = None,
|
|
83
|
+
on_mouse_over: Optional[EventType[[]]] = None,
|
|
84
|
+
on_mouse_up: Optional[EventType[[]]] = None,
|
|
85
|
+
on_scroll: Optional[EventType[[]]] = None,
|
|
86
|
+
on_unmount: Optional[EventType[[]]] = None,
|
|
127
87
|
**props,
|
|
128
88
|
) -> "RechartsCharts":
|
|
129
89
|
"""Create a new memoization leaf component.
|
|
@@ -171,6 +131,7 @@ LiteralScale = Literal[
|
|
|
171
131
|
"sequential",
|
|
172
132
|
"threshold",
|
|
173
133
|
]
|
|
134
|
+
LiteralTextAnchor = Literal["start", "middle", "end"]
|
|
174
135
|
LiteralLayout = Literal["horizontal", "vertical"]
|
|
175
136
|
LiteralPolarRadiusType = Literal["number", "category"]
|
|
176
137
|
LiteralGridType = Literal["polygon", "circle"]
|
|
@@ -242,6 +203,9 @@ LiteralAreaType = Literal[
|
|
|
242
203
|
"stepBefore",
|
|
243
204
|
"stepAfter",
|
|
244
205
|
]
|
|
245
|
-
LiteralDirection = Literal["x", "y"
|
|
206
|
+
LiteralDirection = Literal["x", "y"]
|
|
246
207
|
LiteralInterval = Literal["preserveStart", "preserveEnd", "preserveStartEnd"]
|
|
208
|
+
LiteralIntervalAxis = Literal[
|
|
209
|
+
"preserveStart", "preserveEnd", "preserveStartEnd", "equidistantPreserveStart"
|
|
210
|
+
]
|
|
247
211
|
LiteralSyncMethod = Literal["index", "value"]
|
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
# ------------------- DO NOT EDIT ----------------------
|
|
4
4
|
# This file was generated by `reflex/utils/pyi_generator.py`!
|
|
5
5
|
# ------------------------------------------------------
|
|
6
|
-
from typing import Any,
|
|
6
|
+
from typing import Any, ClassVar, Dict, Literal, Optional, Union, overload
|
|
7
7
|
|
|
8
8
|
from reflex.base import Base
|
|
9
9
|
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
|
-
from reflex.event import
|
|
12
|
+
from reflex.event import EventSpec, EventType
|
|
13
13
|
from reflex.style import Style
|
|
14
14
|
from reflex.utils.serializers import serializer
|
|
15
15
|
from reflex.vars.base import Var
|
|
@@ -121,41 +121,21 @@ class Toaster(Component):
|
|
|
121
121
|
class_name: Optional[Any] = None,
|
|
122
122
|
autofocus: Optional[bool] = None,
|
|
123
123
|
custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
|
|
124
|
-
on_blur: Optional[
|
|
125
|
-
on_click: Optional[
|
|
126
|
-
on_context_menu: Optional[
|
|
127
|
-
|
|
128
|
-
] = None,
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
] = None,
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
] = None,
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
] = None,
|
|
140
|
-
on_mouse_leave: Optional[
|
|
141
|
-
Union[EventHandler, EventSpec, list, Callable, Var]
|
|
142
|
-
] = None,
|
|
143
|
-
on_mouse_move: Optional[
|
|
144
|
-
Union[EventHandler, EventSpec, list, Callable, Var]
|
|
145
|
-
] = None,
|
|
146
|
-
on_mouse_out: Optional[
|
|
147
|
-
Union[EventHandler, EventSpec, list, Callable, Var]
|
|
148
|
-
] = None,
|
|
149
|
-
on_mouse_over: Optional[
|
|
150
|
-
Union[EventHandler, EventSpec, list, Callable, Var]
|
|
151
|
-
] = None,
|
|
152
|
-
on_mouse_up: Optional[
|
|
153
|
-
Union[EventHandler, EventSpec, list, Callable, Var]
|
|
154
|
-
] = None,
|
|
155
|
-
on_scroll: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
|
|
156
|
-
on_unmount: Optional[
|
|
157
|
-
Union[EventHandler, EventSpec, list, Callable, Var]
|
|
158
|
-
] = None,
|
|
124
|
+
on_blur: Optional[EventType[[]]] = None,
|
|
125
|
+
on_click: Optional[EventType[[]]] = None,
|
|
126
|
+
on_context_menu: Optional[EventType[[]]] = None,
|
|
127
|
+
on_double_click: Optional[EventType[[]]] = None,
|
|
128
|
+
on_focus: Optional[EventType[[]]] = None,
|
|
129
|
+
on_mount: Optional[EventType[[]]] = None,
|
|
130
|
+
on_mouse_down: Optional[EventType[[]]] = None,
|
|
131
|
+
on_mouse_enter: Optional[EventType[[]]] = None,
|
|
132
|
+
on_mouse_leave: Optional[EventType[[]]] = None,
|
|
133
|
+
on_mouse_move: Optional[EventType[[]]] = None,
|
|
134
|
+
on_mouse_out: Optional[EventType[[]]] = None,
|
|
135
|
+
on_mouse_over: Optional[EventType[[]]] = None,
|
|
136
|
+
on_mouse_up: Optional[EventType[[]]] = None,
|
|
137
|
+
on_scroll: Optional[EventType[[]]] = None,
|
|
138
|
+
on_unmount: Optional[EventType[[]]] = None,
|
|
159
139
|
**props,
|
|
160
140
|
) -> "Toaster":
|
|
161
141
|
"""Create a toaster component.
|
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
# This file was generated by `reflex/utils/pyi_generator.py`!
|
|
5
5
|
# ------------------------------------------------------
|
|
6
6
|
import enum
|
|
7
|
-
from typing import Any,
|
|
7
|
+
from typing import Any, Dict, List, Literal, Optional, Union, overload
|
|
8
8
|
|
|
9
9
|
from reflex.base import Base
|
|
10
10
|
from reflex.components.component import NoSSRComponent
|
|
11
|
-
from reflex.event import
|
|
11
|
+
from reflex.event import EventType
|
|
12
12
|
from reflex.style import Style
|
|
13
13
|
from reflex.utils.imports import ImportDict
|
|
14
14
|
from reflex.vars.base import Var
|
|
@@ -122,56 +122,30 @@ class Editor(NoSSRComponent):
|
|
|
122
122
|
class_name: Optional[Any] = None,
|
|
123
123
|
autofocus: Optional[bool] = None,
|
|
124
124
|
custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
|
|
125
|
-
on_blur: Optional[
|
|
126
|
-
on_change: Optional[
|
|
127
|
-
on_click: Optional[
|
|
128
|
-
on_context_menu: Optional[
|
|
129
|
-
|
|
130
|
-
] = None,
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
] = None,
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
] = None,
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
] = None,
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
] = None,
|
|
149
|
-
on_mouse_move: Optional[
|
|
150
|
-
Union[EventHandler, EventSpec, list, Callable, Var]
|
|
151
|
-
] = None,
|
|
152
|
-
on_mouse_out: Optional[
|
|
153
|
-
Union[EventHandler, EventSpec, list, Callable, Var]
|
|
154
|
-
] = None,
|
|
155
|
-
on_mouse_over: Optional[
|
|
156
|
-
Union[EventHandler, EventSpec, list, Callable, Var]
|
|
157
|
-
] = None,
|
|
158
|
-
on_mouse_up: Optional[
|
|
159
|
-
Union[EventHandler, EventSpec, list, Callable, Var]
|
|
160
|
-
] = None,
|
|
161
|
-
on_paste: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
|
|
162
|
-
on_resize_editor: Optional[
|
|
163
|
-
Union[EventHandler, EventSpec, list, Callable, Var]
|
|
164
|
-
] = None,
|
|
165
|
-
on_scroll: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
|
|
166
|
-
on_unmount: Optional[
|
|
167
|
-
Union[EventHandler, EventSpec, list, Callable, Var]
|
|
168
|
-
] = None,
|
|
169
|
-
toggle_code_view: Optional[
|
|
170
|
-
Union[EventHandler, EventSpec, list, Callable, Var]
|
|
171
|
-
] = None,
|
|
172
|
-
toggle_full_screen: Optional[
|
|
173
|
-
Union[EventHandler, EventSpec, list, Callable, Var]
|
|
174
|
-
] = None,
|
|
125
|
+
on_blur: Optional[EventType] = None,
|
|
126
|
+
on_change: Optional[EventType] = None,
|
|
127
|
+
on_click: Optional[EventType[[]]] = None,
|
|
128
|
+
on_context_menu: Optional[EventType[[]]] = None,
|
|
129
|
+
on_copy: Optional[EventType] = None,
|
|
130
|
+
on_cut: Optional[EventType] = None,
|
|
131
|
+
on_double_click: Optional[EventType[[]]] = None,
|
|
132
|
+
on_focus: Optional[EventType[[]]] = None,
|
|
133
|
+
on_input: Optional[EventType] = None,
|
|
134
|
+
on_load: Optional[EventType] = None,
|
|
135
|
+
on_mount: Optional[EventType[[]]] = None,
|
|
136
|
+
on_mouse_down: Optional[EventType[[]]] = None,
|
|
137
|
+
on_mouse_enter: Optional[EventType[[]]] = None,
|
|
138
|
+
on_mouse_leave: Optional[EventType[[]]] = None,
|
|
139
|
+
on_mouse_move: Optional[EventType[[]]] = None,
|
|
140
|
+
on_mouse_out: Optional[EventType[[]]] = None,
|
|
141
|
+
on_mouse_over: Optional[EventType[[]]] = None,
|
|
142
|
+
on_mouse_up: Optional[EventType[[]]] = None,
|
|
143
|
+
on_paste: Optional[EventType] = None,
|
|
144
|
+
on_resize_editor: Optional[EventType] = None,
|
|
145
|
+
on_scroll: Optional[EventType[[]]] = None,
|
|
146
|
+
on_unmount: Optional[EventType[[]]] = None,
|
|
147
|
+
toggle_code_view: Optional[EventType] = None,
|
|
148
|
+
toggle_full_screen: Optional[EventType] = None,
|
|
175
149
|
**props,
|
|
176
150
|
) -> "Editor":
|
|
177
151
|
"""Create an instance of Editor. No children allowed.
|
|
@@ -48,10 +48,10 @@ class IterTag(Tag):
|
|
|
48
48
|
"""
|
|
49
49
|
iterable = self.iterable
|
|
50
50
|
try:
|
|
51
|
-
if iterable._var_type.mro()[0]
|
|
51
|
+
if iterable._var_type.mro()[0] is dict:
|
|
52
52
|
# Arg is a tuple of (key, value).
|
|
53
53
|
return Tuple[get_args(iterable._var_type)] # type: ignore
|
|
54
|
-
elif iterable._var_type.mro()[0]
|
|
54
|
+
elif iterable._var_type.mro()[0] is tuple:
|
|
55
55
|
# Arg is a union of any possible values in the tuple.
|
|
56
56
|
return Union[get_args(iterable._var_type)] # type: ignore
|
|
57
57
|
else:
|
reflex/config.py
CHANGED
|
@@ -9,6 +9,8 @@ import urllib.parse
|
|
|
9
9
|
from pathlib import Path
|
|
10
10
|
from typing import Any, Dict, List, Optional, Set, Union
|
|
11
11
|
|
|
12
|
+
from reflex.utils.exceptions import ConfigError
|
|
13
|
+
|
|
12
14
|
try:
|
|
13
15
|
import pydantic.v1 as pydantic
|
|
14
16
|
except ModuleNotFoundError:
|
|
@@ -220,6 +222,9 @@ class Config(Base):
|
|
|
220
222
|
# Number of gunicorn workers from user
|
|
221
223
|
gunicorn_workers: Optional[int] = None
|
|
222
224
|
|
|
225
|
+
# Indicate which type of state manager to use
|
|
226
|
+
state_manager_mode: constants.StateManagerMode = constants.StateManagerMode.DISK
|
|
227
|
+
|
|
223
228
|
# Maximum expiration lock time for redis state manager
|
|
224
229
|
redis_lock_expiration: int = constants.Expiration.LOCK
|
|
225
230
|
|
|
@@ -235,6 +240,9 @@ class Config(Base):
|
|
|
235
240
|
Args:
|
|
236
241
|
*args: The args to pass to the Pydantic init method.
|
|
237
242
|
**kwargs: The kwargs to pass to the Pydantic init method.
|
|
243
|
+
|
|
244
|
+
Raises:
|
|
245
|
+
ConfigError: If some values in the config are invalid.
|
|
238
246
|
"""
|
|
239
247
|
super().__init__(*args, **kwargs)
|
|
240
248
|
|
|
@@ -248,6 +256,14 @@ class Config(Base):
|
|
|
248
256
|
self._non_default_attributes.update(kwargs)
|
|
249
257
|
self._replace_defaults(**kwargs)
|
|
250
258
|
|
|
259
|
+
if (
|
|
260
|
+
self.state_manager_mode == constants.StateManagerMode.REDIS
|
|
261
|
+
and not self.redis_url
|
|
262
|
+
):
|
|
263
|
+
raise ConfigError(
|
|
264
|
+
"REDIS_URL is required when using the redis state manager."
|
|
265
|
+
)
|
|
266
|
+
|
|
251
267
|
@property
|
|
252
268
|
def module(self) -> str:
|
|
253
269
|
"""Get the module name of the app.
|
reflex/constants/__init__.py
CHANGED
|
@@ -63,6 +63,7 @@ from .route import (
|
|
|
63
63
|
RouteRegex,
|
|
64
64
|
RouteVar,
|
|
65
65
|
)
|
|
66
|
+
from .state import StateManagerMode
|
|
66
67
|
from .style import Tailwind
|
|
67
68
|
|
|
68
69
|
__ALL__ = [
|
|
@@ -115,6 +116,7 @@ __ALL__ = [
|
|
|
115
116
|
SETTER_PREFIX,
|
|
116
117
|
SKIP_COMPILE_ENV_VAR,
|
|
117
118
|
SocketEvent,
|
|
119
|
+
StateManagerMode,
|
|
118
120
|
Tailwind,
|
|
119
121
|
Templates,
|
|
120
122
|
CompileVars,
|
reflex/constants/compiler.py
CHANGED
|
@@ -160,3 +160,28 @@ class MemoizationMode(Base):
|
|
|
160
160
|
|
|
161
161
|
# Whether children of this component should be memoized first.
|
|
162
162
|
recursive: bool = True
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
class SpecialAttributes(enum.Enum):
|
|
166
|
+
"""Special attributes for components.
|
|
167
|
+
|
|
168
|
+
These are placed in custom_attrs and rendered as-is rather than converting
|
|
169
|
+
to a style prop.
|
|
170
|
+
"""
|
|
171
|
+
|
|
172
|
+
DATA_UNDERSCORE = "data_"
|
|
173
|
+
DATA_DASH = "data-"
|
|
174
|
+
ARIA_UNDERSCORE = "aria_"
|
|
175
|
+
ARIA_DASH = "aria-"
|
|
176
|
+
|
|
177
|
+
@classmethod
|
|
178
|
+
def is_special(cls, attr: str) -> bool:
|
|
179
|
+
"""Check if the attribute is special.
|
|
180
|
+
|
|
181
|
+
Args:
|
|
182
|
+
attr: the attribute to check
|
|
183
|
+
|
|
184
|
+
Returns:
|
|
185
|
+
True if the attribute is special.
|
|
186
|
+
"""
|
|
187
|
+
return any(attr.startswith(value.value) for value in cls)
|
reflex/constants/installer.py
CHANGED
|
@@ -35,7 +35,7 @@ class Bun(SimpleNamespace):
|
|
|
35
35
|
"""Bun constants."""
|
|
36
36
|
|
|
37
37
|
# The Bun version.
|
|
38
|
-
VERSION = "1.1.
|
|
38
|
+
VERSION = "1.1.29"
|
|
39
39
|
# Min Bun Version
|
|
40
40
|
MIN_VERSION = "0.7.0"
|
|
41
41
|
# The directory to store the bun.
|
|
@@ -44,7 +44,8 @@ class Bun(SimpleNamespace):
|
|
|
44
44
|
DEFAULT_PATH = ROOT_PATH / "bin" / ("bun" if not IS_WINDOWS else "bun.exe")
|
|
45
45
|
|
|
46
46
|
# URL to bun install script.
|
|
47
|
-
INSTALL_URL = "https://
|
|
47
|
+
INSTALL_URL = "https://raw.githubusercontent.com/reflex-dev/reflex/main/scripts/bun_install.sh"
|
|
48
|
+
|
|
48
49
|
# URL to windows install script.
|
|
49
50
|
WINDOWS_INSTALL_URL = (
|
|
50
51
|
"https://raw.githubusercontent.com/reflex-dev/reflex/main/scripts/install.ps1"
|
|
@@ -79,7 +80,7 @@ class Node(SimpleNamespace):
|
|
|
79
80
|
"""Node/ NPM constants."""
|
|
80
81
|
|
|
81
82
|
# The Node version.
|
|
82
|
-
VERSION = "18.
|
|
83
|
+
VERSION = "20.18.0"
|
|
83
84
|
# The minimum required node version.
|
|
84
85
|
MIN_VERSION = "18.17.0"
|
|
85
86
|
|
|
@@ -116,21 +117,21 @@ class PackageJson(SimpleNamespace):
|
|
|
116
117
|
PATH = "package.json"
|
|
117
118
|
|
|
118
119
|
DEPENDENCIES = {
|
|
119
|
-
"@babel/standalone": "7.25.
|
|
120
|
-
"@emotion/react": "11.
|
|
121
|
-
"axios": "1.
|
|
120
|
+
"@babel/standalone": "7.25.7",
|
|
121
|
+
"@emotion/react": "11.13.3",
|
|
122
|
+
"axios": "1.7.7",
|
|
122
123
|
"json5": "2.2.3",
|
|
123
|
-
"next": "14.2.
|
|
124
|
-
"next-sitemap": "4.
|
|
125
|
-
"next-themes": "0.
|
|
126
|
-
"react": "18.
|
|
127
|
-
"react-dom": "18.
|
|
128
|
-
"react-focus-lock": "2.
|
|
129
|
-
"socket.io-client": "4.
|
|
130
|
-
"universal-cookie": "
|
|
124
|
+
"next": "14.2.14",
|
|
125
|
+
"next-sitemap": "4.2.3",
|
|
126
|
+
"next-themes": "0.3.0",
|
|
127
|
+
"react": "18.3.1",
|
|
128
|
+
"react-dom": "18.3.1",
|
|
129
|
+
"react-focus-lock": "2.13.2",
|
|
130
|
+
"socket.io-client": "4.8.0",
|
|
131
|
+
"universal-cookie": "7.2.0",
|
|
131
132
|
}
|
|
132
133
|
DEV_DEPENDENCIES = {
|
|
133
|
-
"autoprefixer": "10.4.
|
|
134
|
-
"postcss": "8.4.
|
|
134
|
+
"autoprefixer": "10.4.20",
|
|
135
|
+
"postcss": "8.4.47",
|
|
135
136
|
"postcss-import": "16.1.0",
|
|
136
137
|
}
|
reflex/constants/style.py
CHANGED
|
@@ -260,7 +260,7 @@ def _validate_library_name(library_name: str | None) -> NameVariants:
|
|
|
260
260
|
# Module name is the snake case.
|
|
261
261
|
module_name = "_".join(name_parts)
|
|
262
262
|
|
|
263
|
-
custom_component_module_dir = f"reflex_{module_name}"
|
|
263
|
+
custom_component_module_dir = Path(f"reflex_{module_name}")
|
|
264
264
|
console.debug(f"Custom component source directory: {custom_component_module_dir}")
|
|
265
265
|
|
|
266
266
|
# Use the same name for the directory and the app.
|