reflex 0.7.7a2__py3-none-any.whl → 0.7.8__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/web/utils/state.js +26 -16
- reflex/admin.py +1 -1
- reflex/app.py +6 -17
- reflex/app_mixins/lifespan.py +1 -1
- reflex/base.py +2 -2
- reflex/compiler/compiler.py +8 -7
- reflex/compiler/utils.py +6 -5
- reflex/components/base/app_wrap.pyi +18 -17
- reflex/components/base/bare.py +2 -1
- reflex/components/base/body.pyi +18 -17
- reflex/components/base/document.pyi +82 -81
- reflex/components/base/error_boundary.pyi +19 -18
- reflex/components/base/fragment.pyi +18 -17
- reflex/components/base/head.pyi +34 -33
- reflex/components/base/link.pyi +34 -33
- reflex/components/base/meta.pyi +66 -65
- reflex/components/base/script.pyi +21 -20
- reflex/components/base/strict_mode.pyi +18 -17
- reflex/components/component.py +20 -36
- reflex/components/core/auto_scroll.pyi +18 -17
- reflex/components/core/banner.pyi +98 -97
- reflex/components/core/breakpoints.py +1 -1
- reflex/components/core/client_side_routing.pyi +34 -33
- reflex/components/core/clipboard.py +1 -1
- reflex/components/core/clipboard.pyi +19 -18
- reflex/components/core/cond.py +2 -2
- reflex/components/core/debounce.py +3 -3
- reflex/components/core/debounce.pyi +20 -19
- reflex/components/core/foreach.py +2 -1
- reflex/components/core/html.pyi +18 -17
- reflex/components/core/match.py +2 -2
- reflex/components/core/sticky.pyi +66 -65
- reflex/components/core/upload.py +7 -10
- reflex/components/core/upload.pyi +86 -85
- reflex/components/datadisplay/code.pyi +34 -33
- reflex/components/datadisplay/dataeditor.py +3 -2
- reflex/components/datadisplay/dataeditor.pyi +35 -68
- reflex/components/datadisplay/shiki_code_block.pyi +50 -49
- reflex/components/el/element.pyi +18 -17
- reflex/components/el/elements/base.pyi +18 -17
- reflex/components/el/elements/forms.py +2 -1
- reflex/components/el/elements/forms.pyi +290 -332
- reflex/components/el/elements/inline.pyi +450 -449
- reflex/components/el/elements/media.pyi +402 -401
- 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 +3 -2
- reflex/components/gridjs/datatable.pyi +35 -34
- reflex/components/lucide/icon.pyi +50 -49
- reflex/components/markdown/markdown.py +2 -1
- reflex/components/markdown/markdown.pyi +18 -17
- reflex/components/moment/moment.pyi +19 -18
- reflex/components/next/base.pyi +18 -17
- 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 +3 -3
- reflex/components/plotly/plotly.pyi +326 -325
- reflex/components/radix/primitives/accordion.py +2 -1
- reflex/components/radix/primitives/accordion.pyi +115 -114
- reflex/components/radix/primitives/base.pyi +34 -33
- reflex/components/radix/primitives/drawer.py +2 -1
- reflex/components/radix/primitives/drawer.pyi +187 -186
- reflex/components/radix/primitives/form.pyi +168 -182
- reflex/components/radix/primitives/progress.pyi +82 -81
- reflex/components/radix/primitives/slider.py +2 -1
- reflex/components/radix/primitives/slider.pyi +84 -83
- reflex/components/radix/themes/base.pyi +130 -129
- reflex/components/radix/themes/color_mode.pyi +51 -50
- 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.pyi +53 -52
- reflex/components/radix/themes/components/checkbox_cards.pyi +34 -33
- reflex/components/radix/themes/components/checkbox_group.py +2 -1
- reflex/components/radix/themes/components/checkbox_group.pyi +34 -33
- reflex/components/radix/themes/components/context_menu.pyi +225 -224
- reflex/components/radix/themes/components/data_list.pyi +66 -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.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 +2 -1
- reflex/components/radix/themes/components/radio_group.pyi +67 -66
- reflex/components/radix/themes/components/scroll_area.pyi +18 -17
- reflex/components/radix/themes/components/segmented_control.py +2 -1
- 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.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 -31
- 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 -24
- reflex/components/radix/themes/components/text_field.pyi +56 -63
- reflex/components/radix/themes/components/tooltip.py +2 -2
- 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.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 +2 -1
- reflex/components/radix/themes/layout/list.pyi +82 -81
- 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 -36
- reflex/components/react_player/react_player.pyi +34 -33
- reflex/components/react_player/video.pyi +34 -36
- reflex/components/recharts/cartesian.py +7 -6
- reflex/components/recharts/cartesian.pyi +302 -301
- reflex/components/recharts/charts.py +2 -1
- reflex/components/recharts/charts.pyi +177 -176
- reflex/components/recharts/general.py +3 -2
- reflex/components/recharts/general.pyi +99 -98
- reflex/components/recharts/polar.py +9 -8
- reflex/components/recharts/polar.pyi +62 -61
- reflex/components/recharts/recharts.pyi +34 -33
- reflex/components/sonner/toast.pyi +19 -18
- reflex/components/suneditor/editor.py +22 -24
- reflex/components/suneditor/editor.pyi +27 -28
- reflex/components/tags/cond_tag.py +3 -3
- reflex/components/tags/iter_tag.py +2 -1
- reflex/components/tags/tag.py +3 -2
- reflex/config.py +27 -17
- reflex/constants/installer.py +4 -4
- reflex/constants/route.py +2 -3
- reflex/constants/utils.py +4 -3
- reflex/event.py +56 -28
- reflex/experimental/client_state.py +3 -2
- reflex/experimental/layout.pyi +84 -83
- reflex/istate/data.py +1 -1
- reflex/istate/storage.py +2 -2
- reflex/model.py +3 -3
- reflex/page.py +3 -2
- reflex/state.py +56 -57
- reflex/style.py +3 -2
- reflex/testing.py +12 -21
- reflex/utils/codespaces.py +14 -15
- reflex/utils/decorator.py +2 -1
- reflex/utils/exec.py +1 -1
- reflex/utils/format.py +2 -2
- reflex/utils/imports.py +6 -8
- reflex/utils/misc.py +2 -1
- reflex/utils/net.py +2 -1
- reflex/utils/prerequisites.py +12 -5
- reflex/utils/processes.py +6 -5
- reflex/utils/pyi_generator.py +6 -5
- reflex/utils/serializers.py +13 -25
- reflex/utils/types.py +34 -46
- reflex/vars/base.py +60 -56
- reflex/vars/dep_tracking.py +4 -4
- reflex/vars/function.py +13 -36
- reflex/vars/number.py +5 -17
- reflex/vars/object.py +9 -16
- reflex/vars/sequence.py +11 -23
- {reflex-0.7.7a2.dist-info → reflex-0.7.8.dist-info}/METADATA +1 -1
- {reflex-0.7.7a2.dist-info → reflex-0.7.8.dist-info}/RECORD +185 -185
- {reflex-0.7.7a2.dist-info → reflex-0.7.8.dist-info}/WHEEL +0 -0
- {reflex-0.7.7a2.dist-info → reflex-0.7.8.dist-info}/entry_points.txt +0 -0
- {reflex-0.7.7a2.dist-info → reflex-0.7.8.dist-info}/licenses/LICENSE +0 -0
|
@@ -260,11 +260,15 @@ export const applyEvent = async (event, socket) => {
|
|
|
260
260
|
try {
|
|
261
261
|
const eval_result = event.payload.function();
|
|
262
262
|
if (event.payload.callback) {
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
263
|
+
const final_result =
|
|
264
|
+
!!eval_result && typeof eval_result.then === "function"
|
|
265
|
+
? await eval_result
|
|
266
|
+
: eval_result;
|
|
267
|
+
const callback =
|
|
268
|
+
typeof event.payload.callback === "string"
|
|
269
|
+
? eval(event.payload.callback)
|
|
270
|
+
: event.payload.callback;
|
|
271
|
+
callback(final_result);
|
|
268
272
|
}
|
|
269
273
|
} catch (e) {
|
|
270
274
|
console.log("_call_function", e);
|
|
@@ -283,11 +287,15 @@ export const applyEvent = async (event, socket) => {
|
|
|
283
287
|
: eval(event.payload.function)();
|
|
284
288
|
|
|
285
289
|
if (event.payload.callback) {
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
290
|
+
const final_result =
|
|
291
|
+
!!eval_result && typeof eval_result.then === "function"
|
|
292
|
+
? await eval_result
|
|
293
|
+
: eval_result;
|
|
294
|
+
const callback =
|
|
295
|
+
typeof event.payload.callback === "string"
|
|
296
|
+
? eval(event.payload.callback)
|
|
297
|
+
: event.payload.callback;
|
|
298
|
+
callback(final_result);
|
|
291
299
|
}
|
|
292
300
|
} catch (e) {
|
|
293
301
|
console.log("_call_script", e);
|
|
@@ -364,7 +372,7 @@ export const queueEvents = async (events, socket, prepend) => {
|
|
|
364
372
|
),
|
|
365
373
|
];
|
|
366
374
|
}
|
|
367
|
-
event_queue.push(...events);
|
|
375
|
+
event_queue.push(...events.filter((e) => e !== undefined && e !== null));
|
|
368
376
|
await processEvent(socket.current);
|
|
369
377
|
};
|
|
370
378
|
|
|
@@ -750,11 +758,13 @@ export const useEventLoop = (
|
|
|
750
758
|
|
|
751
759
|
// Function to add new events to the event queue.
|
|
752
760
|
const addEvents = (events, args, event_actions) => {
|
|
761
|
+
const _events = events.filter((e) => e !== undefined && e !== null);
|
|
762
|
+
|
|
753
763
|
if (!(args instanceof Array)) {
|
|
754
764
|
args = [args];
|
|
755
765
|
}
|
|
756
766
|
|
|
757
|
-
event_actions =
|
|
767
|
+
event_actions = _events.reduce(
|
|
758
768
|
(acc, e) => ({ ...acc, ...e.event_actions }),
|
|
759
769
|
event_actions ?? {},
|
|
760
770
|
);
|
|
@@ -767,7 +777,7 @@ export const useEventLoop = (
|
|
|
767
777
|
if (event_actions?.stopPropagation && _e?.stopPropagation) {
|
|
768
778
|
_e.stopPropagation();
|
|
769
779
|
}
|
|
770
|
-
const combined_name =
|
|
780
|
+
const combined_name = _events.map((e) => e.name).join("+++");
|
|
771
781
|
if (event_actions?.temporal) {
|
|
772
782
|
if (!socket.current || !socket.current.connected) {
|
|
773
783
|
return; // don't queue when the backend is not connected
|
|
@@ -783,11 +793,11 @@ export const useEventLoop = (
|
|
|
783
793
|
// If debounce is used, queue the events after some delay
|
|
784
794
|
debounce(
|
|
785
795
|
combined_name,
|
|
786
|
-
() => queueEvents(
|
|
796
|
+
() => queueEvents(_events, socket),
|
|
787
797
|
event_actions.debounce,
|
|
788
798
|
);
|
|
789
799
|
} else {
|
|
790
|
-
queueEvents(
|
|
800
|
+
queueEvents(_events, socket);
|
|
791
801
|
}
|
|
792
802
|
};
|
|
793
803
|
|
|
@@ -954,7 +964,7 @@ export const isTrue = (val) => {
|
|
|
954
964
|
* @returns True if the value is not null or undefined, false otherwise.
|
|
955
965
|
*/
|
|
956
966
|
export const isNotNullOrUndefined = (val) => {
|
|
957
|
-
return val ?? undefined !== undefined;
|
|
967
|
+
return (val ?? undefined) !== undefined;
|
|
958
968
|
};
|
|
959
969
|
|
|
960
970
|
/**
|
reflex/admin.py
CHANGED
reflex/app.py
CHANGED
|
@@ -13,23 +13,12 @@ import io
|
|
|
13
13
|
import json
|
|
14
14
|
import sys
|
|
15
15
|
import traceback
|
|
16
|
+
from collections.abc import AsyncIterator, Callable, Coroutine, MutableMapping
|
|
16
17
|
from datetime import datetime
|
|
17
18
|
from pathlib import Path
|
|
18
19
|
from timeit import default_timer as timer
|
|
19
20
|
from types import SimpleNamespace
|
|
20
|
-
from typing import
|
|
21
|
-
TYPE_CHECKING,
|
|
22
|
-
Any,
|
|
23
|
-
AsyncIterator,
|
|
24
|
-
BinaryIO,
|
|
25
|
-
Callable,
|
|
26
|
-
Coroutine,
|
|
27
|
-
Dict,
|
|
28
|
-
MutableMapping,
|
|
29
|
-
Type,
|
|
30
|
-
get_args,
|
|
31
|
-
get_type_hints,
|
|
32
|
-
)
|
|
21
|
+
from typing import TYPE_CHECKING, Any, BinaryIO, get_args, get_type_hints
|
|
33
22
|
|
|
34
23
|
from fastapi import FastAPI, HTTPException, Request
|
|
35
24
|
from fastapi import UploadFile as FastAPIUploadFile
|
|
@@ -373,13 +362,13 @@ class App(MiddlewareMixin, LifespanMixin):
|
|
|
373
362
|
_pages: dict[str, Component] = dataclasses.field(default_factory=dict)
|
|
374
363
|
|
|
375
364
|
# A mapping of pages which created states as they were being evaluated.
|
|
376
|
-
_stateful_pages:
|
|
365
|
+
_stateful_pages: dict[str, None] = dataclasses.field(default_factory=dict)
|
|
377
366
|
|
|
378
367
|
# The backend API object.
|
|
379
368
|
_api: FastAPI | None = None
|
|
380
369
|
|
|
381
370
|
# The state class to use for the app.
|
|
382
|
-
_state:
|
|
371
|
+
_state: type[BaseState] | None = None
|
|
383
372
|
|
|
384
373
|
# Class to manage many client states.
|
|
385
374
|
_state_manager: StateManager | None = None
|
|
@@ -1036,7 +1025,7 @@ class App(MiddlewareMixin, LifespanMixin):
|
|
|
1036
1025
|
for render, kwargs in DECORATED_PAGES[get_config().app_name]:
|
|
1037
1026
|
self.add_page(render, **kwargs)
|
|
1038
1027
|
|
|
1039
|
-
def _validate_var_dependencies(self, state:
|
|
1028
|
+
def _validate_var_dependencies(self, state: type[BaseState] | None = None) -> None:
|
|
1040
1029
|
"""Validate the dependencies of the vars in the app.
|
|
1041
1030
|
|
|
1042
1031
|
Args:
|
|
@@ -1591,7 +1580,7 @@ class App(MiddlewareMixin, LifespanMixin):
|
|
|
1591
1580
|
|
|
1592
1581
|
|
|
1593
1582
|
async def process(
|
|
1594
|
-
app: App, event: Event, sid: str, headers:
|
|
1583
|
+
app: App, event: Event, sid: str, headers: dict, client_ip: str
|
|
1595
1584
|
) -> AsyncIterator[StateUpdate]:
|
|
1596
1585
|
"""Process an event.
|
|
1597
1586
|
|
reflex/app_mixins/lifespan.py
CHANGED
reflex/base.py
CHANGED
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
5
|
import os
|
|
6
|
-
from typing import TYPE_CHECKING, Any
|
|
6
|
+
from typing import TYPE_CHECKING, Any
|
|
7
7
|
|
|
8
8
|
import pydantic.v1.main as pydantic_main
|
|
9
9
|
from pydantic.v1 import BaseModel
|
|
10
10
|
from pydantic.v1.fields import ModelField
|
|
11
11
|
|
|
12
12
|
|
|
13
|
-
def validate_field_name(bases: list[
|
|
13
|
+
def validate_field_name(bases: list[type[BaseModel]], field_name: str) -> None:
|
|
14
14
|
"""Ensure that the field's name does not shadow an existing attribute of the model.
|
|
15
15
|
|
|
16
16
|
Args:
|
reflex/compiler/compiler.py
CHANGED
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
+
from collections.abc import Iterable, Sequence
|
|
5
6
|
from datetime import datetime
|
|
6
7
|
from pathlib import Path
|
|
7
|
-
from typing import TYPE_CHECKING
|
|
8
|
+
from typing import TYPE_CHECKING
|
|
8
9
|
|
|
9
10
|
from reflex import constants
|
|
10
11
|
from reflex.compiler import templates, utils
|
|
@@ -97,7 +98,7 @@ def _compile_theme(theme: str) -> str:
|
|
|
97
98
|
return templates.THEME.render(theme=theme)
|
|
98
99
|
|
|
99
100
|
|
|
100
|
-
def _compile_contexts(state:
|
|
101
|
+
def _compile_contexts(state: type[BaseState] | None, theme: Component | None) -> str:
|
|
101
102
|
"""Compile the initial state and contexts.
|
|
102
103
|
|
|
103
104
|
Args:
|
|
@@ -132,7 +133,7 @@ def _compile_contexts(state: Type[BaseState] | None, theme: Component | None) ->
|
|
|
132
133
|
|
|
133
134
|
def _compile_page(
|
|
134
135
|
component: BaseComponent,
|
|
135
|
-
state:
|
|
136
|
+
state: type[BaseState] | None,
|
|
136
137
|
) -> str:
|
|
137
138
|
"""Compile the component given the app state.
|
|
138
139
|
|
|
@@ -516,7 +517,7 @@ def compile_theme(style: ComponentStyle) -> tuple[str, str]:
|
|
|
516
517
|
|
|
517
518
|
|
|
518
519
|
def compile_contexts(
|
|
519
|
-
state:
|
|
520
|
+
state: type[BaseState] | None,
|
|
520
521
|
theme: Component | None,
|
|
521
522
|
) -> tuple[str, str]:
|
|
522
523
|
"""Compile the initial state / context.
|
|
@@ -535,7 +536,7 @@ def compile_contexts(
|
|
|
535
536
|
|
|
536
537
|
|
|
537
538
|
def compile_page(
|
|
538
|
-
path: str, component: BaseComponent, state:
|
|
539
|
+
path: str, component: BaseComponent, state: type[BaseState] | None
|
|
539
540
|
) -> tuple[str, str]:
|
|
540
541
|
"""Compile a single page.
|
|
541
542
|
|
|
@@ -739,7 +740,7 @@ def into_component(component: Component | ComponentCallable) -> Component:
|
|
|
739
740
|
def compile_unevaluated_page(
|
|
740
741
|
route: str,
|
|
741
742
|
page: UnevaluatedPage,
|
|
742
|
-
state:
|
|
743
|
+
state: type[BaseState] | None = None,
|
|
743
744
|
style: ComponentStyle | None = None,
|
|
744
745
|
theme: Component | None = None,
|
|
745
746
|
) -> tuple[Component, bool]:
|
|
@@ -829,7 +830,7 @@ class ExecutorSafeFunctions:
|
|
|
829
830
|
|
|
830
831
|
COMPONENTS: dict[str, BaseComponent] = {}
|
|
831
832
|
UNCOMPILED_PAGES: dict[str, UnevaluatedPage] = {}
|
|
832
|
-
STATE:
|
|
833
|
+
STATE: type[BaseState] | None = None
|
|
833
834
|
|
|
834
835
|
@classmethod
|
|
835
836
|
def compile_page(cls, route: str) -> tuple[str, str]:
|
reflex/compiler/utils.py
CHANGED
|
@@ -5,9 +5,10 @@ from __future__ import annotations
|
|
|
5
5
|
import asyncio
|
|
6
6
|
import concurrent.futures
|
|
7
7
|
import traceback
|
|
8
|
+
from collections.abc import Sequence
|
|
8
9
|
from datetime import datetime
|
|
9
10
|
from pathlib import Path
|
|
10
|
-
from typing import Any
|
|
11
|
+
from typing import Any
|
|
11
12
|
from urllib.parse import urlparse
|
|
12
13
|
|
|
13
14
|
from pydantic.v1.fields import ModelField
|
|
@@ -178,7 +179,7 @@ def save_error(error: Exception) -> str:
|
|
|
178
179
|
return str(log_path)
|
|
179
180
|
|
|
180
181
|
|
|
181
|
-
def compile_state(state:
|
|
182
|
+
def compile_state(state: type[BaseState]) -> dict:
|
|
182
183
|
"""Compile the state of the app.
|
|
183
184
|
|
|
184
185
|
Args:
|
|
@@ -211,7 +212,7 @@ def compile_state(state: Type[BaseState]) -> dict:
|
|
|
211
212
|
def _compile_client_storage_field(
|
|
212
213
|
field: ModelField,
|
|
213
214
|
) -> tuple[
|
|
214
|
-
|
|
215
|
+
type[Cookie] | type[LocalStorage] | type[SessionStorage] | None,
|
|
215
216
|
dict[str, Any] | None,
|
|
216
217
|
]:
|
|
217
218
|
"""Compile the given cookie, local_storage or session_storage field.
|
|
@@ -234,7 +235,7 @@ def _compile_client_storage_field(
|
|
|
234
235
|
|
|
235
236
|
|
|
236
237
|
def _compile_client_storage_recursive(
|
|
237
|
-
state:
|
|
238
|
+
state: type[BaseState],
|
|
238
239
|
) -> tuple[dict[str, dict], dict[str, dict], dict[str, dict]]:
|
|
239
240
|
"""Compile the client-side storage for the given state recursively.
|
|
240
241
|
|
|
@@ -279,7 +280,7 @@ def _compile_client_storage_recursive(
|
|
|
279
280
|
return cookies, local_storage, session_storage
|
|
280
281
|
|
|
281
282
|
|
|
282
|
-
def compile_client_storage(state:
|
|
283
|
+
def compile_client_storage(state: type[BaseState]) -> dict[str, dict]:
|
|
283
284
|
"""Compile the client-side storage for the given state.
|
|
284
285
|
|
|
285
286
|
Args:
|
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
# ------------------- DO NOT EDIT ----------------------
|
|
4
4
|
# This file was generated by `reflex/utils/pyi_generator.py`!
|
|
5
5
|
# ------------------------------------------------------
|
|
6
|
-
from
|
|
6
|
+
from collections.abc import Mapping, Sequence
|
|
7
|
+
from typing import Any, overload
|
|
7
8
|
|
|
8
9
|
from reflex.components.base.fragment import Fragment
|
|
9
10
|
from reflex.components.core.breakpoints import Breakpoints
|
|
@@ -26,23 +27,23 @@ class AppWrap(Fragment):
|
|
|
26
27
|
class_name: Any | None = None,
|
|
27
28
|
autofocus: bool | None = None,
|
|
28
29
|
custom_attrs: dict[str, Var | Any] | None = None,
|
|
29
|
-
on_blur:
|
|
30
|
-
on_click:
|
|
31
|
-
on_context_menu:
|
|
32
|
-
on_double_click:
|
|
33
|
-
on_focus:
|
|
34
|
-
on_mount:
|
|
35
|
-
on_mouse_down:
|
|
36
|
-
on_mouse_enter:
|
|
37
|
-
on_mouse_leave:
|
|
38
|
-
on_mouse_move:
|
|
39
|
-
on_mouse_out:
|
|
40
|
-
on_mouse_over:
|
|
41
|
-
on_mouse_up:
|
|
42
|
-
on_scroll:
|
|
43
|
-
on_unmount:
|
|
30
|
+
on_blur: EventType[()] | None = None,
|
|
31
|
+
on_click: EventType[()] | None = None,
|
|
32
|
+
on_context_menu: EventType[()] | None = None,
|
|
33
|
+
on_double_click: EventType[()] | None = None,
|
|
34
|
+
on_focus: EventType[()] | None = None,
|
|
35
|
+
on_mount: EventType[()] | None = None,
|
|
36
|
+
on_mouse_down: EventType[()] | None = None,
|
|
37
|
+
on_mouse_enter: EventType[()] | None = None,
|
|
38
|
+
on_mouse_leave: EventType[()] | None = None,
|
|
39
|
+
on_mouse_move: EventType[()] | None = None,
|
|
40
|
+
on_mouse_out: EventType[()] | None = None,
|
|
41
|
+
on_mouse_over: EventType[()] | None = None,
|
|
42
|
+
on_mouse_up: EventType[()] | None = None,
|
|
43
|
+
on_scroll: EventType[()] | None = None,
|
|
44
|
+
on_unmount: EventType[()] | None = None,
|
|
44
45
|
**props,
|
|
45
|
-
) ->
|
|
46
|
+
) -> AppWrap:
|
|
46
47
|
"""Create a new AppWrap component.
|
|
47
48
|
|
|
48
49
|
Returns:
|
reflex/components/base/bare.py
CHANGED
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
-
from
|
|
5
|
+
from collections.abc import Iterator, Sequence
|
|
6
|
+
from typing import Any
|
|
6
7
|
|
|
7
8
|
from reflex.components.component import BaseComponent, Component, ComponentStyle
|
|
8
9
|
from reflex.components.tags import Tag
|
reflex/components/base/body.pyi
CHANGED
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
# ------------------- DO NOT EDIT ----------------------
|
|
4
4
|
# This file was generated by `reflex/utils/pyi_generator.py`!
|
|
5
5
|
# ------------------------------------------------------
|
|
6
|
-
from
|
|
6
|
+
from collections.abc import Mapping, Sequence
|
|
7
|
+
from typing import Any, overload
|
|
7
8
|
|
|
8
9
|
from reflex.components.component import Component
|
|
9
10
|
from reflex.components.core.breakpoints import Breakpoints
|
|
@@ -26,23 +27,23 @@ class Body(Component):
|
|
|
26
27
|
class_name: Any | None = None,
|
|
27
28
|
autofocus: bool | None = None,
|
|
28
29
|
custom_attrs: dict[str, Var | Any] | None = None,
|
|
29
|
-
on_blur:
|
|
30
|
-
on_click:
|
|
31
|
-
on_context_menu:
|
|
32
|
-
on_double_click:
|
|
33
|
-
on_focus:
|
|
34
|
-
on_mount:
|
|
35
|
-
on_mouse_down:
|
|
36
|
-
on_mouse_enter:
|
|
37
|
-
on_mouse_leave:
|
|
38
|
-
on_mouse_move:
|
|
39
|
-
on_mouse_out:
|
|
40
|
-
on_mouse_over:
|
|
41
|
-
on_mouse_up:
|
|
42
|
-
on_scroll:
|
|
43
|
-
on_unmount:
|
|
30
|
+
on_blur: EventType[()] | None = None,
|
|
31
|
+
on_click: EventType[()] | None = None,
|
|
32
|
+
on_context_menu: EventType[()] | None = None,
|
|
33
|
+
on_double_click: EventType[()] | None = None,
|
|
34
|
+
on_focus: EventType[()] | None = None,
|
|
35
|
+
on_mount: EventType[()] | None = None,
|
|
36
|
+
on_mouse_down: EventType[()] | None = None,
|
|
37
|
+
on_mouse_enter: EventType[()] | None = None,
|
|
38
|
+
on_mouse_leave: EventType[()] | None = None,
|
|
39
|
+
on_mouse_move: EventType[()] | None = None,
|
|
40
|
+
on_mouse_out: EventType[()] | None = None,
|
|
41
|
+
on_mouse_over: EventType[()] | None = None,
|
|
42
|
+
on_mouse_up: EventType[()] | None = None,
|
|
43
|
+
on_scroll: EventType[()] | None = None,
|
|
44
|
+
on_unmount: EventType[()] | None = None,
|
|
44
45
|
**props,
|
|
45
|
-
) ->
|
|
46
|
+
) -> Body:
|
|
46
47
|
"""Create the component.
|
|
47
48
|
|
|
48
49
|
Args:
|
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
# ------------------- DO NOT EDIT ----------------------
|
|
4
4
|
# This file was generated by `reflex/utils/pyi_generator.py`!
|
|
5
5
|
# ------------------------------------------------------
|
|
6
|
-
from
|
|
6
|
+
from collections.abc import Mapping, Sequence
|
|
7
|
+
from typing import Any, overload
|
|
7
8
|
|
|
8
9
|
from reflex.components.component import Component
|
|
9
10
|
from reflex.components.core.breakpoints import Breakpoints
|
|
@@ -26,23 +27,23 @@ class NextDocumentLib(Component):
|
|
|
26
27
|
class_name: Any | None = None,
|
|
27
28
|
autofocus: bool | None = None,
|
|
28
29
|
custom_attrs: dict[str, Var | Any] | None = None,
|
|
29
|
-
on_blur:
|
|
30
|
-
on_click:
|
|
31
|
-
on_context_menu:
|
|
32
|
-
on_double_click:
|
|
33
|
-
on_focus:
|
|
34
|
-
on_mount:
|
|
35
|
-
on_mouse_down:
|
|
36
|
-
on_mouse_enter:
|
|
37
|
-
on_mouse_leave:
|
|
38
|
-
on_mouse_move:
|
|
39
|
-
on_mouse_out:
|
|
40
|
-
on_mouse_over:
|
|
41
|
-
on_mouse_up:
|
|
42
|
-
on_scroll:
|
|
43
|
-
on_unmount:
|
|
30
|
+
on_blur: EventType[()] | None = None,
|
|
31
|
+
on_click: EventType[()] | None = None,
|
|
32
|
+
on_context_menu: EventType[()] | None = None,
|
|
33
|
+
on_double_click: EventType[()] | None = None,
|
|
34
|
+
on_focus: EventType[()] | None = None,
|
|
35
|
+
on_mount: EventType[()] | None = None,
|
|
36
|
+
on_mouse_down: EventType[()] | None = None,
|
|
37
|
+
on_mouse_enter: EventType[()] | None = None,
|
|
38
|
+
on_mouse_leave: EventType[()] | None = None,
|
|
39
|
+
on_mouse_move: EventType[()] | None = None,
|
|
40
|
+
on_mouse_out: EventType[()] | None = None,
|
|
41
|
+
on_mouse_over: EventType[()] | None = None,
|
|
42
|
+
on_mouse_up: EventType[()] | None = None,
|
|
43
|
+
on_scroll: EventType[()] | None = None,
|
|
44
|
+
on_unmount: EventType[()] | None = None,
|
|
44
45
|
**props,
|
|
45
|
-
) ->
|
|
46
|
+
) -> NextDocumentLib:
|
|
46
47
|
"""Create the component.
|
|
47
48
|
|
|
48
49
|
Args:
|
|
@@ -77,23 +78,23 @@ class Html(NextDocumentLib):
|
|
|
77
78
|
class_name: Any | None = None,
|
|
78
79
|
autofocus: bool | None = None,
|
|
79
80
|
custom_attrs: dict[str, Var | Any] | None = None,
|
|
80
|
-
on_blur:
|
|
81
|
-
on_click:
|
|
82
|
-
on_context_menu:
|
|
83
|
-
on_double_click:
|
|
84
|
-
on_focus:
|
|
85
|
-
on_mount:
|
|
86
|
-
on_mouse_down:
|
|
87
|
-
on_mouse_enter:
|
|
88
|
-
on_mouse_leave:
|
|
89
|
-
on_mouse_move:
|
|
90
|
-
on_mouse_out:
|
|
91
|
-
on_mouse_over:
|
|
92
|
-
on_mouse_up:
|
|
93
|
-
on_scroll:
|
|
94
|
-
on_unmount:
|
|
81
|
+
on_blur: EventType[()] | None = None,
|
|
82
|
+
on_click: EventType[()] | None = None,
|
|
83
|
+
on_context_menu: EventType[()] | None = None,
|
|
84
|
+
on_double_click: EventType[()] | None = None,
|
|
85
|
+
on_focus: EventType[()] | None = None,
|
|
86
|
+
on_mount: EventType[()] | None = None,
|
|
87
|
+
on_mouse_down: EventType[()] | None = None,
|
|
88
|
+
on_mouse_enter: EventType[()] | None = None,
|
|
89
|
+
on_mouse_leave: EventType[()] | None = None,
|
|
90
|
+
on_mouse_move: EventType[()] | None = None,
|
|
91
|
+
on_mouse_out: EventType[()] | None = None,
|
|
92
|
+
on_mouse_over: EventType[()] | None = None,
|
|
93
|
+
on_mouse_up: EventType[()] | None = None,
|
|
94
|
+
on_scroll: EventType[()] | None = None,
|
|
95
|
+
on_unmount: EventType[()] | None = None,
|
|
95
96
|
**props,
|
|
96
|
-
) ->
|
|
97
|
+
) -> Html:
|
|
97
98
|
"""Create the component.
|
|
98
99
|
|
|
99
100
|
Args:
|
|
@@ -127,23 +128,23 @@ class DocumentHead(NextDocumentLib):
|
|
|
127
128
|
class_name: Any | None = None,
|
|
128
129
|
autofocus: bool | None = None,
|
|
129
130
|
custom_attrs: dict[str, Var | Any] | None = None,
|
|
130
|
-
on_blur:
|
|
131
|
-
on_click:
|
|
132
|
-
on_context_menu:
|
|
133
|
-
on_double_click:
|
|
134
|
-
on_focus:
|
|
135
|
-
on_mount:
|
|
136
|
-
on_mouse_down:
|
|
137
|
-
on_mouse_enter:
|
|
138
|
-
on_mouse_leave:
|
|
139
|
-
on_mouse_move:
|
|
140
|
-
on_mouse_out:
|
|
141
|
-
on_mouse_over:
|
|
142
|
-
on_mouse_up:
|
|
143
|
-
on_scroll:
|
|
144
|
-
on_unmount:
|
|
131
|
+
on_blur: EventType[()] | None = None,
|
|
132
|
+
on_click: EventType[()] | None = None,
|
|
133
|
+
on_context_menu: EventType[()] | None = None,
|
|
134
|
+
on_double_click: EventType[()] | None = None,
|
|
135
|
+
on_focus: EventType[()] | None = None,
|
|
136
|
+
on_mount: EventType[()] | None = None,
|
|
137
|
+
on_mouse_down: EventType[()] | None = None,
|
|
138
|
+
on_mouse_enter: EventType[()] | None = None,
|
|
139
|
+
on_mouse_leave: EventType[()] | None = None,
|
|
140
|
+
on_mouse_move: EventType[()] | None = None,
|
|
141
|
+
on_mouse_out: EventType[()] | None = None,
|
|
142
|
+
on_mouse_over: EventType[()] | None = None,
|
|
143
|
+
on_mouse_up: EventType[()] | None = None,
|
|
144
|
+
on_scroll: EventType[()] | None = None,
|
|
145
|
+
on_unmount: EventType[()] | None = None,
|
|
145
146
|
**props,
|
|
146
|
-
) ->
|
|
147
|
+
) -> DocumentHead:
|
|
147
148
|
"""Create the component.
|
|
148
149
|
|
|
149
150
|
Args:
|
|
@@ -177,23 +178,23 @@ class Main(NextDocumentLib):
|
|
|
177
178
|
class_name: Any | None = None,
|
|
178
179
|
autofocus: bool | None = None,
|
|
179
180
|
custom_attrs: dict[str, Var | Any] | None = None,
|
|
180
|
-
on_blur:
|
|
181
|
-
on_click:
|
|
182
|
-
on_context_menu:
|
|
183
|
-
on_double_click:
|
|
184
|
-
on_focus:
|
|
185
|
-
on_mount:
|
|
186
|
-
on_mouse_down:
|
|
187
|
-
on_mouse_enter:
|
|
188
|
-
on_mouse_leave:
|
|
189
|
-
on_mouse_move:
|
|
190
|
-
on_mouse_out:
|
|
191
|
-
on_mouse_over:
|
|
192
|
-
on_mouse_up:
|
|
193
|
-
on_scroll:
|
|
194
|
-
on_unmount:
|
|
181
|
+
on_blur: EventType[()] | None = None,
|
|
182
|
+
on_click: EventType[()] | None = None,
|
|
183
|
+
on_context_menu: EventType[()] | None = None,
|
|
184
|
+
on_double_click: EventType[()] | None = None,
|
|
185
|
+
on_focus: EventType[()] | None = None,
|
|
186
|
+
on_mount: EventType[()] | None = None,
|
|
187
|
+
on_mouse_down: EventType[()] | None = None,
|
|
188
|
+
on_mouse_enter: EventType[()] | None = None,
|
|
189
|
+
on_mouse_leave: EventType[()] | None = None,
|
|
190
|
+
on_mouse_move: EventType[()] | None = None,
|
|
191
|
+
on_mouse_out: EventType[()] | None = None,
|
|
192
|
+
on_mouse_over: EventType[()] | None = None,
|
|
193
|
+
on_mouse_up: EventType[()] | None = None,
|
|
194
|
+
on_scroll: EventType[()] | None = None,
|
|
195
|
+
on_unmount: EventType[()] | None = None,
|
|
195
196
|
**props,
|
|
196
|
-
) ->
|
|
197
|
+
) -> Main:
|
|
197
198
|
"""Create the component.
|
|
198
199
|
|
|
199
200
|
Args:
|
|
@@ -227,23 +228,23 @@ class NextScript(NextDocumentLib):
|
|
|
227
228
|
class_name: Any | None = None,
|
|
228
229
|
autofocus: bool | None = None,
|
|
229
230
|
custom_attrs: dict[str, Var | Any] | None = None,
|
|
230
|
-
on_blur:
|
|
231
|
-
on_click:
|
|
232
|
-
on_context_menu:
|
|
233
|
-
on_double_click:
|
|
234
|
-
on_focus:
|
|
235
|
-
on_mount:
|
|
236
|
-
on_mouse_down:
|
|
237
|
-
on_mouse_enter:
|
|
238
|
-
on_mouse_leave:
|
|
239
|
-
on_mouse_move:
|
|
240
|
-
on_mouse_out:
|
|
241
|
-
on_mouse_over:
|
|
242
|
-
on_mouse_up:
|
|
243
|
-
on_scroll:
|
|
244
|
-
on_unmount:
|
|
231
|
+
on_blur: EventType[()] | None = None,
|
|
232
|
+
on_click: EventType[()] | None = None,
|
|
233
|
+
on_context_menu: EventType[()] | None = None,
|
|
234
|
+
on_double_click: EventType[()] | None = None,
|
|
235
|
+
on_focus: EventType[()] | None = None,
|
|
236
|
+
on_mount: EventType[()] | None = None,
|
|
237
|
+
on_mouse_down: EventType[()] | None = None,
|
|
238
|
+
on_mouse_enter: EventType[()] | None = None,
|
|
239
|
+
on_mouse_leave: EventType[()] | None = None,
|
|
240
|
+
on_mouse_move: EventType[()] | None = None,
|
|
241
|
+
on_mouse_out: EventType[()] | None = None,
|
|
242
|
+
on_mouse_over: EventType[()] | None = None,
|
|
243
|
+
on_mouse_up: EventType[()] | None = None,
|
|
244
|
+
on_scroll: EventType[()] | None = None,
|
|
245
|
+
on_unmount: EventType[()] | None = None,
|
|
245
246
|
**props,
|
|
246
|
-
) ->
|
|
247
|
+
) -> NextScript:
|
|
247
248
|
"""Create the component.
|
|
248
249
|
|
|
249
250
|
Args:
|