reflex 0.6.3a4__py3-none-any.whl → 0.6.4__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/_app.js.jinja2 +2 -2
- reflex/.templates/jinja/web/utils/context.js.jinja2 +3 -1
- reflex/.templates/web/components/reflex/radix_themes_color_mode_provider.js +3 -3
- reflex/.templates/web/components/shiki/code.js +29 -0
- reflex/.templates/web/jsconfig.json +2 -1
- reflex/.templates/web/utils/state.js +6 -4
- reflex/__init__.py +6 -3
- reflex/__init__.pyi +4 -3
- reflex/app.py +6 -5
- reflex/compiler/compiler.py +6 -7
- reflex/compiler/utils.py +8 -1
- reflex/components/base/error_boundary.py +37 -24
- reflex/components/base/error_boundary.pyi +8 -7
- reflex/components/component.py +9 -4
- reflex/components/core/banner.py +2 -2
- reflex/components/core/client_side_routing.py +1 -1
- reflex/components/core/clipboard.py +1 -1
- reflex/components/core/clipboard.pyi +1 -1
- reflex/components/core/cond.py +1 -1
- reflex/components/core/debounce.py +5 -1
- reflex/components/core/upload.py +7 -9
- reflex/components/core/upload.pyi +2 -2
- reflex/components/datadisplay/code.py +1 -1
- reflex/components/datadisplay/dataeditor.py +83 -18
- reflex/components/datadisplay/dataeditor.pyi +67 -15
- reflex/components/datadisplay/shiki_code_block.py +813 -0
- reflex/components/datadisplay/shiki_code_block.pyi +2211 -0
- reflex/components/dynamic.py +3 -3
- reflex/components/el/elements/forms.py +37 -23
- reflex/components/el/elements/forms.pyi +7 -4
- reflex/components/markdown/markdown.py +12 -1
- reflex/components/moment/moment.pyi +1 -1
- reflex/components/radix/primitives/drawer.pyi +2 -2
- reflex/components/radix/themes/base.py +2 -2
- reflex/components/radix/themes/color_mode.pyi +1 -1
- reflex/components/radix/themes/components/alert_dialog.pyi +1 -1
- reflex/components/radix/themes/components/checkbox.pyi +3 -3
- reflex/components/radix/themes/components/context_menu.pyi +1 -1
- reflex/components/radix/themes/components/dialog.pyi +2 -2
- reflex/components/radix/themes/components/dropdown_menu.pyi +2 -2
- reflex/components/radix/themes/components/hover_card.pyi +2 -2
- reflex/components/radix/themes/components/popover.pyi +1 -1
- reflex/components/radix/themes/components/radio_cards.pyi +1 -1
- reflex/components/radix/themes/components/radio_group.pyi +1 -1
- reflex/components/radix/themes/components/select.pyi +6 -6
- reflex/components/radix/themes/components/switch.pyi +1 -1
- reflex/components/radix/themes/components/tabs.pyi +2 -2
- reflex/components/radix/themes/components/tooltip.pyi +4 -2
- reflex/components/react_player/__init__.py +1 -0
- reflex/components/react_player/audio.pyi +6 -3
- reflex/components/react_player/react_player.py +12 -1
- reflex/components/react_player/react_player.pyi +11 -3
- reflex/components/react_player/video.pyi +6 -3
- reflex/components/recharts/recharts.py +2 -2
- reflex/components/sonner/toast.py +1 -1
- reflex/components/suneditor/editor.py +40 -16
- reflex/components/suneditor/editor.pyi +15 -11
- reflex/config.py +284 -20
- reflex/constants/__init__.py +2 -0
- reflex/constants/base.py +53 -31
- reflex/constants/compiler.py +2 -12
- reflex/constants/config.py +1 -2
- reflex/constants/installer.py +88 -32
- reflex/constants/style.py +1 -1
- reflex/constants/utils.py +32 -0
- reflex/custom_components/custom_components.py +3 -3
- reflex/event.py +152 -84
- reflex/experimental/__init__.py +2 -0
- reflex/experimental/client_state.py +1 -1
- reflex/experimental/layout.pyi +1 -1
- reflex/istate/storage.py +144 -0
- reflex/model.py +8 -11
- reflex/reflex.py +18 -17
- reflex/state.py +89 -151
- reflex/style.py +1 -1
- reflex/testing.py +2 -1
- reflex/utils/build.py +0 -12
- reflex/utils/exceptions.py +8 -0
- reflex/utils/exec.py +22 -4
- reflex/utils/imports.py +6 -0
- reflex/utils/net.py +2 -4
- reflex/utils/path_ops.py +7 -21
- reflex/utils/prerequisites.py +11 -17
- reflex/utils/pyi_generator.py +91 -3
- reflex/utils/registry.py +2 -6
- reflex/utils/types.py +14 -0
- reflex/vars/base.py +453 -424
- reflex/vars/function.py +6 -16
- reflex/vars/number.py +46 -67
- reflex/vars/object.py +1 -31
- reflex/vars/sequence.py +177 -47
- {reflex-0.6.3a4.dist-info → reflex-0.6.4.dist-info}/METADATA +1 -1
- {reflex-0.6.3a4.dist-info → reflex-0.6.4.dist-info}/RECORD +96 -91
- {reflex-0.6.3a4.dist-info → reflex-0.6.4.dist-info}/LICENSE +0 -0
- {reflex-0.6.3a4.dist-info → reflex-0.6.4.dist-info}/WHEEL +0 -0
- {reflex-0.6.3a4.dist-info → reflex-0.6.4.dist-info}/entry_points.txt +0 -0
|
@@ -5,6 +5,8 @@ from __future__ import annotations
|
|
|
5
5
|
from enum import Enum
|
|
6
6
|
from typing import Any, Dict, List, Literal, Optional, Tuple, Union
|
|
7
7
|
|
|
8
|
+
from typing_extensions import TypedDict
|
|
9
|
+
|
|
8
10
|
from reflex.base import Base
|
|
9
11
|
from reflex.components.component import Component, NoSSRComponent
|
|
10
12
|
from reflex.components.literals import LiteralRowMarker
|
|
@@ -107,17 +109,76 @@ class DataEditorTheme(Base):
|
|
|
107
109
|
text_medium: Optional[str] = None
|
|
108
110
|
|
|
109
111
|
|
|
110
|
-
|
|
111
|
-
"""The
|
|
112
|
+
class Bounds(TypedDict):
|
|
113
|
+
"""The bounds of the group header."""
|
|
112
114
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
115
|
+
x: int
|
|
116
|
+
y: int
|
|
117
|
+
width: int
|
|
118
|
+
height: int
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
class CompatSelection(TypedDict):
|
|
122
|
+
"""The selection."""
|
|
123
|
+
|
|
124
|
+
items: list
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
class Rectangle(TypedDict):
|
|
128
|
+
"""The bounds of the group header."""
|
|
129
|
+
|
|
130
|
+
x: int
|
|
131
|
+
y: int
|
|
132
|
+
width: int
|
|
133
|
+
height: int
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
class GridSelectionCurrent(TypedDict):
|
|
137
|
+
"""The current selection."""
|
|
138
|
+
|
|
139
|
+
cell: tuple[int, int]
|
|
140
|
+
range: Rectangle
|
|
141
|
+
rangeStack: list[Rectangle]
|
|
116
142
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
"""
|
|
120
|
-
|
|
143
|
+
|
|
144
|
+
class GridSelection(TypedDict):
|
|
145
|
+
"""The grid selection."""
|
|
146
|
+
|
|
147
|
+
current: Optional[GridSelectionCurrent]
|
|
148
|
+
columns: CompatSelection
|
|
149
|
+
rows: CompatSelection
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
class GroupHeaderClickedEventArgs(TypedDict):
|
|
153
|
+
"""The arguments for the group header clicked event."""
|
|
154
|
+
|
|
155
|
+
kind: str
|
|
156
|
+
group: str
|
|
157
|
+
location: tuple[int, int]
|
|
158
|
+
bounds: Bounds
|
|
159
|
+
isEdge: bool
|
|
160
|
+
shiftKey: bool
|
|
161
|
+
ctrlKey: bool
|
|
162
|
+
metaKey: bool
|
|
163
|
+
isTouch: bool
|
|
164
|
+
localEventX: int
|
|
165
|
+
localEventY: int
|
|
166
|
+
button: int
|
|
167
|
+
buttons: int
|
|
168
|
+
scrollEdge: tuple[int, int]
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
class GridCell(TypedDict):
|
|
172
|
+
"""The grid cell."""
|
|
173
|
+
|
|
174
|
+
span: Optional[List[int]]
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
class GridColumn(TypedDict):
|
|
178
|
+
"""The grid column."""
|
|
179
|
+
|
|
180
|
+
title: str
|
|
181
|
+
group: Optional[str]
|
|
121
182
|
|
|
122
183
|
|
|
123
184
|
class DataEditor(NoSSRComponent):
|
|
@@ -232,16 +293,18 @@ class DataEditor(NoSSRComponent):
|
|
|
232
293
|
on_cell_context_menu: EventHandler[identity_event(Tuple[int, int])]
|
|
233
294
|
|
|
234
295
|
# Fired when a cell is edited.
|
|
235
|
-
on_cell_edited: EventHandler[
|
|
296
|
+
on_cell_edited: EventHandler[identity_event(Tuple[int, int], GridCell)]
|
|
236
297
|
|
|
237
298
|
# Fired when a group header is clicked.
|
|
238
|
-
on_group_header_clicked: EventHandler[
|
|
299
|
+
on_group_header_clicked: EventHandler[identity_event(Tuple[int, int], GridCell)]
|
|
239
300
|
|
|
240
301
|
# Fired when a group header is right-clicked.
|
|
241
|
-
on_group_header_context_menu: EventHandler[
|
|
302
|
+
on_group_header_context_menu: EventHandler[
|
|
303
|
+
identity_event(int, GroupHeaderClickedEventArgs)
|
|
304
|
+
]
|
|
242
305
|
|
|
243
306
|
# Fired when a group header is renamed.
|
|
244
|
-
on_group_header_renamed: EventHandler[
|
|
307
|
+
on_group_header_renamed: EventHandler[identity_event(str, str)]
|
|
245
308
|
|
|
246
309
|
# Fired when a header is clicked.
|
|
247
310
|
on_header_clicked: EventHandler[identity_event(Tuple[int, int])]
|
|
@@ -250,16 +313,18 @@ class DataEditor(NoSSRComponent):
|
|
|
250
313
|
on_header_context_menu: EventHandler[identity_event(Tuple[int, int])]
|
|
251
314
|
|
|
252
315
|
# Fired when a header menu item is clicked.
|
|
253
|
-
on_header_menu_click: EventHandler[
|
|
316
|
+
on_header_menu_click: EventHandler[identity_event(int, Rectangle)]
|
|
254
317
|
|
|
255
318
|
# Fired when an item is hovered.
|
|
256
319
|
on_item_hovered: EventHandler[identity_event(Tuple[int, int])]
|
|
257
320
|
|
|
258
321
|
# Fired when a selection is deleted.
|
|
259
|
-
on_delete: EventHandler[
|
|
322
|
+
on_delete: EventHandler[identity_event(GridSelection)]
|
|
260
323
|
|
|
261
324
|
# Fired when editing is finished.
|
|
262
|
-
on_finished_editing: EventHandler[
|
|
325
|
+
on_finished_editing: EventHandler[
|
|
326
|
+
identity_event(Union[GridCell, None], tuple[int, int])
|
|
327
|
+
]
|
|
263
328
|
|
|
264
329
|
# Fired when a row is appended.
|
|
265
330
|
on_row_appended: EventHandler[empty_event]
|
|
@@ -268,7 +333,7 @@ class DataEditor(NoSSRComponent):
|
|
|
268
333
|
on_selection_cleared: EventHandler[empty_event]
|
|
269
334
|
|
|
270
335
|
# Fired when a column is resized.
|
|
271
|
-
on_column_resize: EventHandler[
|
|
336
|
+
on_column_resize: EventHandler[identity_event(GridColumn, int)]
|
|
272
337
|
|
|
273
338
|
def add_imports(self) -> ImportDict:
|
|
274
339
|
"""Add imports for the component.
|
|
@@ -279,7 +344,7 @@ class DataEditor(NoSSRComponent):
|
|
|
279
344
|
return {
|
|
280
345
|
"": f"{format.format_library_name(self.library)}/dist/index.css",
|
|
281
346
|
self.library: "GridCellKind",
|
|
282
|
-
"
|
|
347
|
+
"$/utils/helpers/dataeditor.js": ImportVar(
|
|
283
348
|
tag="formatDataEditorCells", is_default=False, install=False
|
|
284
349
|
),
|
|
285
350
|
}
|
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
from enum import Enum
|
|
7
7
|
from typing import Any, Dict, List, Literal, Optional, Union, overload
|
|
8
8
|
|
|
9
|
+
from typing_extensions import TypedDict
|
|
10
|
+
|
|
9
11
|
from reflex.base import Base
|
|
10
12
|
from reflex.components.component import NoSSRComponent
|
|
11
13
|
from reflex.event import EventType
|
|
@@ -76,7 +78,53 @@ class DataEditorTheme(Base):
|
|
|
76
78
|
text_light: Optional[str]
|
|
77
79
|
text_medium: Optional[str]
|
|
78
80
|
|
|
79
|
-
|
|
81
|
+
class Bounds(TypedDict):
|
|
82
|
+
x: int
|
|
83
|
+
y: int
|
|
84
|
+
width: int
|
|
85
|
+
height: int
|
|
86
|
+
|
|
87
|
+
class CompatSelection(TypedDict):
|
|
88
|
+
items: list
|
|
89
|
+
|
|
90
|
+
class Rectangle(TypedDict):
|
|
91
|
+
x: int
|
|
92
|
+
y: int
|
|
93
|
+
width: int
|
|
94
|
+
height: int
|
|
95
|
+
|
|
96
|
+
class GridSelectionCurrent(TypedDict):
|
|
97
|
+
cell: tuple[int, int]
|
|
98
|
+
range: Rectangle
|
|
99
|
+
rangeStack: list[Rectangle]
|
|
100
|
+
|
|
101
|
+
class GridSelection(TypedDict):
|
|
102
|
+
current: Optional[GridSelectionCurrent]
|
|
103
|
+
columns: CompatSelection
|
|
104
|
+
rows: CompatSelection
|
|
105
|
+
|
|
106
|
+
class GroupHeaderClickedEventArgs(TypedDict):
|
|
107
|
+
kind: str
|
|
108
|
+
group: str
|
|
109
|
+
location: tuple[int, int]
|
|
110
|
+
bounds: Bounds
|
|
111
|
+
isEdge: bool
|
|
112
|
+
shiftKey: bool
|
|
113
|
+
ctrlKey: bool
|
|
114
|
+
metaKey: bool
|
|
115
|
+
isTouch: bool
|
|
116
|
+
localEventX: int
|
|
117
|
+
localEventY: int
|
|
118
|
+
button: int
|
|
119
|
+
buttons: int
|
|
120
|
+
scrollEdge: tuple[int, int]
|
|
121
|
+
|
|
122
|
+
class GridCell(TypedDict):
|
|
123
|
+
span: Optional[List[int]]
|
|
124
|
+
|
|
125
|
+
class GridColumn(TypedDict):
|
|
126
|
+
title: str
|
|
127
|
+
group: Optional[str]
|
|
80
128
|
|
|
81
129
|
class DataEditor(NoSSRComponent):
|
|
82
130
|
def add_imports(self) -> ImportDict: ...
|
|
@@ -136,24 +184,28 @@ class DataEditor(NoSSRComponent):
|
|
|
136
184
|
autofocus: Optional[bool] = None,
|
|
137
185
|
custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
|
|
138
186
|
on_blur: Optional[EventType[[]]] = None,
|
|
139
|
-
on_cell_activated: Optional[EventType] = None,
|
|
140
|
-
on_cell_clicked: Optional[EventType] = None,
|
|
141
|
-
on_cell_context_menu: Optional[EventType] = None,
|
|
142
|
-
on_cell_edited: Optional[EventType] = None,
|
|
187
|
+
on_cell_activated: Optional[EventType[tuple[int, int]]] = None,
|
|
188
|
+
on_cell_clicked: Optional[EventType[tuple[int, int]]] = None,
|
|
189
|
+
on_cell_context_menu: Optional[EventType[tuple[int, int]]] = None,
|
|
190
|
+
on_cell_edited: Optional[EventType[tuple[int, int], GridCell]] = None,
|
|
143
191
|
on_click: Optional[EventType[[]]] = None,
|
|
144
|
-
on_column_resize: Optional[EventType] = None,
|
|
192
|
+
on_column_resize: Optional[EventType[GridColumn, int]] = None,
|
|
145
193
|
on_context_menu: Optional[EventType[[]]] = None,
|
|
146
|
-
on_delete: Optional[EventType] = None,
|
|
194
|
+
on_delete: Optional[EventType[GridSelection]] = None,
|
|
147
195
|
on_double_click: Optional[EventType[[]]] = None,
|
|
148
|
-
on_finished_editing: Optional[
|
|
196
|
+
on_finished_editing: Optional[
|
|
197
|
+
EventType[Union[GridCell, None], tuple[int, int]]
|
|
198
|
+
] = None,
|
|
149
199
|
on_focus: Optional[EventType[[]]] = None,
|
|
150
|
-
on_group_header_clicked: Optional[EventType] = None,
|
|
151
|
-
on_group_header_context_menu: Optional[
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
200
|
+
on_group_header_clicked: Optional[EventType[tuple[int, int], GridCell]] = None,
|
|
201
|
+
on_group_header_context_menu: Optional[
|
|
202
|
+
EventType[int, GroupHeaderClickedEventArgs]
|
|
203
|
+
] = None,
|
|
204
|
+
on_group_header_renamed: Optional[EventType[str, str]] = None,
|
|
205
|
+
on_header_clicked: Optional[EventType[tuple[int, int]]] = None,
|
|
206
|
+
on_header_context_menu: Optional[EventType[tuple[int, int]]] = None,
|
|
207
|
+
on_header_menu_click: Optional[EventType[int, Rectangle]] = None,
|
|
208
|
+
on_item_hovered: Optional[EventType[tuple[int, int]]] = None,
|
|
157
209
|
on_mount: Optional[EventType[[]]] = None,
|
|
158
210
|
on_mouse_down: Optional[EventType[[]]] = None,
|
|
159
211
|
on_mouse_enter: Optional[EventType[[]]] = None,
|