reflex 0.5.4a1__py3-none-any.whl → 0.5.4a2__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/components/chakra/base.py +3 -1
- reflex/components/chakra/forms/checkbox.py +1 -1
- reflex/components/chakra/forms/pininput.py +1 -1
- reflex/components/chakra/forms/rangeslider.py +1 -1
- reflex/components/chakra/navigation/link.py +3 -1
- reflex/components/component.py +24 -9
- reflex/components/core/banner.py +2 -1
- reflex/components/core/client_side_routing.py +1 -1
- reflex/components/core/debounce.py +3 -1
- reflex/components/core/foreach.py +1 -1
- reflex/components/core/upload.py +1 -0
- reflex/components/datadisplay/code.py +4 -1
- reflex/components/datadisplay/dataeditor.py +4 -6
- reflex/components/el/elements/forms.py +7 -3
- reflex/components/el/elements/forms.pyi +1 -1
- reflex/components/markdown/markdown.py +16 -10
- reflex/components/markdown/markdown.pyi +12 -8
- reflex/components/plotly/plotly.py +7 -3
- reflex/components/radix/primitives/accordion.py +1 -1
- reflex/components/radix/themes/base.py +1 -0
- reflex/components/radix/themes/color_mode.py +1 -1
- reflex/components/radix/themes/components/checkbox.py +3 -1
- reflex/components/radix/themes/components/radio_group.py +6 -4
- reflex/components/radix/themes/components/separator.py +1 -1
- reflex/components/radix/themes/layout/container.py +1 -1
- reflex/components/radix/themes/layout/section.py +1 -1
- reflex/components/recharts/charts.py +1 -1
- reflex/components/sonner/toast.py +7 -3
- reflex/components/sonner/toast.pyi +1 -1
- reflex/components/tags/tag.py +2 -1
- reflex/event.py +12 -9
- reflex/experimental/hooks.py +8 -2
- reflex/experimental/layout.py +9 -2
- reflex/style.py +2 -2
- reflex/utils/format.py +4 -1
- reflex/vars.py +18 -10
- {reflex-0.5.4a1.dist-info → reflex-0.5.4a2.dist-info}/METADATA +1 -1
- {reflex-0.5.4a1.dist-info → reflex-0.5.4a2.dist-info}/RECORD +41 -41
- {reflex-0.5.4a1.dist-info → reflex-0.5.4a2.dist-info}/LICENSE +0 -0
- {reflex-0.5.4a1.dist-info → reflex-0.5.4a2.dist-info}/WHEEL +0 -0
- {reflex-0.5.4a1.dist-info → reflex-0.5.4a2.dist-info}/entry_points.txt +0 -0
reflex/components/chakra/base.py
CHANGED
|
@@ -65,7 +65,9 @@ class ChakraProvider(ChakraComponent):
|
|
|
65
65
|
A new ChakraProvider component.
|
|
66
66
|
"""
|
|
67
67
|
return super().create(
|
|
68
|
-
theme=Var.create(
|
|
68
|
+
theme=Var.create(
|
|
69
|
+
"extendTheme(theme)", _var_is_local=False, _var_is_string=False
|
|
70
|
+
),
|
|
69
71
|
)
|
|
70
72
|
|
|
71
73
|
def _get_imports(self) -> imports.ImportDict:
|
|
@@ -51,7 +51,7 @@ class Checkbox(ChakraComponent):
|
|
|
51
51
|
name: Var[str]
|
|
52
52
|
|
|
53
53
|
# The value of the input field when checked (use is_checked prop for a bool)
|
|
54
|
-
value: Var[str] = Var.create("true") # type: ignore
|
|
54
|
+
value: Var[str] = Var.create("true", _var_is_string=True) # type: ignore
|
|
55
55
|
|
|
56
56
|
# The spacing between the checkbox and its label text (0.5rem)
|
|
57
57
|
spacing: Var[str]
|
|
@@ -122,7 +122,7 @@ class PinInput(ChakraComponent):
|
|
|
122
122
|
if ref:
|
|
123
123
|
return (
|
|
124
124
|
f"const {ref} = {str(refs_declaration)}; "
|
|
125
|
-
f"{str(Var.create_safe(ref).as_ref())} = {ref}"
|
|
125
|
+
f"{str(Var.create_safe(ref, _var_is_string=False).as_ref())} = {ref}"
|
|
126
126
|
)
|
|
127
127
|
return super()._get_ref_hook()
|
|
128
128
|
|
|
@@ -80,7 +80,7 @@ class RangeSlider(ChakraComponent):
|
|
|
80
80
|
if ref:
|
|
81
81
|
return (
|
|
82
82
|
f"const {ref} = Array.from({{length:2}}, () => useRef(null)); "
|
|
83
|
-
f"{str(Var.create_safe(ref).as_ref())} = {ref}"
|
|
83
|
+
f"{str(Var.create_safe(ref, _var_is_string=False).as_ref())} = {ref}"
|
|
84
84
|
)
|
|
85
85
|
return super()._get_ref_hook()
|
|
86
86
|
|
|
@@ -25,7 +25,9 @@ class Link(ChakraComponent):
|
|
|
25
25
|
text: Var[str]
|
|
26
26
|
|
|
27
27
|
# What the link renders to.
|
|
28
|
-
as_: Var[str] = BaseVar.create(
|
|
28
|
+
as_: Var[str] = BaseVar.create(
|
|
29
|
+
value="{NextLink}", _var_is_local=False, _var_is_string=False
|
|
30
|
+
) # type: ignore
|
|
29
31
|
|
|
30
32
|
# If true, the link will open in new tab.
|
|
31
33
|
is_external: Var[bool]
|
reflex/components/component.py
CHANGED
|
@@ -319,7 +319,9 @@ class Component(BaseComponent, ABC):
|
|
|
319
319
|
# Set default values for any props.
|
|
320
320
|
if types._issubclass(field.type_, Var):
|
|
321
321
|
field.required = False
|
|
322
|
-
field.default = Var.create(
|
|
322
|
+
field.default = Var.create(
|
|
323
|
+
field.default, _var_is_string=isinstance(field.default, str)
|
|
324
|
+
)
|
|
323
325
|
elif types._issubclass(field.type_, EventHandler):
|
|
324
326
|
field.required = False
|
|
325
327
|
|
|
@@ -348,7 +350,10 @@ class Component(BaseComponent, ABC):
|
|
|
348
350
|
"id": kwargs.get("id"),
|
|
349
351
|
"children": children,
|
|
350
352
|
**{
|
|
351
|
-
prop: Var.create(
|
|
353
|
+
prop: Var.create(
|
|
354
|
+
kwargs[prop],
|
|
355
|
+
_var_is_string=False if isinstance(kwargs[prop], str) else None,
|
|
356
|
+
)
|
|
352
357
|
for prop in self.get_initial_props()
|
|
353
358
|
if prop in kwargs
|
|
354
359
|
},
|
|
@@ -395,7 +400,10 @@ class Component(BaseComponent, ABC):
|
|
|
395
400
|
passed_types = None
|
|
396
401
|
try:
|
|
397
402
|
# Try to create a var from the value.
|
|
398
|
-
kwargs[key] = Var.create(
|
|
403
|
+
kwargs[key] = Var.create(
|
|
404
|
+
value,
|
|
405
|
+
_var_is_string=False if isinstance(value, str) else None,
|
|
406
|
+
)
|
|
399
407
|
|
|
400
408
|
# Check that the var type is not None.
|
|
401
409
|
if kwargs[key] is None:
|
|
@@ -420,7 +428,9 @@ class Component(BaseComponent, ABC):
|
|
|
420
428
|
if types.is_union(passed_type):
|
|
421
429
|
# We need to check all possible types in the union.
|
|
422
430
|
passed_types = (
|
|
423
|
-
arg
|
|
431
|
+
arg
|
|
432
|
+
for arg in passed_type.__args__ # type: ignore
|
|
433
|
+
if arg is not type(None)
|
|
424
434
|
)
|
|
425
435
|
if (
|
|
426
436
|
# If the passed var is a union, check if all possible types are valid.
|
|
@@ -442,7 +452,8 @@ class Component(BaseComponent, ABC):
|
|
|
442
452
|
if key in component_specific_triggers:
|
|
443
453
|
# Temporarily disable full control for event triggers.
|
|
444
454
|
kwargs["event_triggers"][key] = self._create_event_chain(
|
|
445
|
-
value=value,
|
|
455
|
+
value=value, # type: ignore
|
|
456
|
+
args_spec=component_specific_triggers[key],
|
|
446
457
|
)
|
|
447
458
|
|
|
448
459
|
# Remove any keys that were added as events.
|
|
@@ -672,7 +683,9 @@ class Component(BaseComponent, ABC):
|
|
|
672
683
|
# Add ref to element if `id` is not None.
|
|
673
684
|
ref = self.get_ref()
|
|
674
685
|
if ref is not None:
|
|
675
|
-
props["ref"] = Var.create(
|
|
686
|
+
props["ref"] = Var.create(
|
|
687
|
+
ref, _var_is_local=False, _var_is_string=False
|
|
688
|
+
)
|
|
676
689
|
else:
|
|
677
690
|
props = props.copy()
|
|
678
691
|
|
|
@@ -1091,7 +1104,9 @@ class Component(BaseComponent, ABC):
|
|
|
1091
1104
|
vars.append(comp_prop)
|
|
1092
1105
|
elif isinstance(comp_prop, str):
|
|
1093
1106
|
# Collapse VarData encoded in f-strings.
|
|
1094
|
-
var = Var.create_safe(
|
|
1107
|
+
var = Var.create_safe(
|
|
1108
|
+
comp_prop, _var_is_string=isinstance(comp_prop, str)
|
|
1109
|
+
)
|
|
1095
1110
|
if var._var_data is not None:
|
|
1096
1111
|
vars.append(var)
|
|
1097
1112
|
|
|
@@ -1388,7 +1403,7 @@ class Component(BaseComponent, ABC):
|
|
|
1388
1403
|
"""
|
|
1389
1404
|
ref = self.get_ref()
|
|
1390
1405
|
if ref is not None:
|
|
1391
|
-
return f"const {ref} = useRef(null); {str(Var.create_safe(ref).as_ref())} = {ref};"
|
|
1406
|
+
return f"const {ref} = useRef(null); {str(Var.create_safe(ref, _var_is_string=False).as_ref())} = {ref};"
|
|
1392
1407
|
|
|
1393
1408
|
def _get_vars_hooks(self) -> dict[str, None]:
|
|
1394
1409
|
"""Get the hooks required by vars referenced in this component.
|
|
@@ -2147,7 +2162,7 @@ class StatefulComponent(BaseComponent):
|
|
|
2147
2162
|
|
|
2148
2163
|
# Store the memoized function name and hook code for this event trigger.
|
|
2149
2164
|
trigger_memo[event_trigger] = (
|
|
2150
|
-
Var.create_safe(memo_name)._replace(
|
|
2165
|
+
Var.create_safe(memo_name, _var_is_string=False)._replace(
|
|
2151
2166
|
_var_type=EventChain, merge_var_data=memo_var_data
|
|
2152
2167
|
),
|
|
2153
2168
|
f"const {memo_name} = useCallback({rendered_chain}, [{', '.join(var_deps)}])",
|
reflex/components/core/banner.py
CHANGED
|
@@ -132,7 +132,8 @@ useEffect(() => {{
|
|
|
132
132
|
toast.dismiss("{toast_id}");
|
|
133
133
|
setUserDismissed(false); // after reconnection reset dismissed state
|
|
134
134
|
}}
|
|
135
|
-
}}, [{connect_errors}]);"""
|
|
135
|
+
}}, [{connect_errors}]);""",
|
|
136
|
+
_var_is_string=False,
|
|
136
137
|
)
|
|
137
138
|
|
|
138
139
|
hook._var_data = VarData.merge( # type: ignore
|
|
@@ -14,7 +14,7 @@ from reflex.components.component import Component
|
|
|
14
14
|
from reflex.components.core.cond import cond
|
|
15
15
|
from reflex.vars import Var
|
|
16
16
|
|
|
17
|
-
route_not_found: Var = Var.create_safe(constants.ROUTE_NOT_FOUND)
|
|
17
|
+
route_not_found: Var = Var.create_safe(constants.ROUTE_NOT_FOUND, _var_is_string=False)
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
class ClientSideRouting(Component):
|
|
@@ -99,7 +99,9 @@ class DebounceInput(Component):
|
|
|
99
99
|
props["class_name"] = f"{props.get('class_name', '')} {child.class_name}"
|
|
100
100
|
child_ref = child.get_ref()
|
|
101
101
|
if props.get("input_ref") is None and child_ref:
|
|
102
|
-
props["input_ref"] = Var.create_safe(
|
|
102
|
+
props["input_ref"] = Var.create_safe(
|
|
103
|
+
child_ref, _var_is_local=False, _var_is_string=False
|
|
104
|
+
)
|
|
103
105
|
props["id"] = child.id
|
|
104
106
|
|
|
105
107
|
# Set the child element to wrap, including any imports/hooks from the child.
|
|
@@ -60,7 +60,7 @@ class Foreach(Component):
|
|
|
60
60
|
deprecation_version="0.5.0",
|
|
61
61
|
removal_version="0.6.0",
|
|
62
62
|
)
|
|
63
|
-
iterable = Var.create_safe(iterable)
|
|
63
|
+
iterable = Var.create_safe(iterable, _var_is_string=False)
|
|
64
64
|
if iterable._var_type == Any:
|
|
65
65
|
raise ForeachVarError(
|
|
66
66
|
f"Could not foreach over var `{iterable._var_full_name}` of type Any. "
|
reflex/components/core/upload.py
CHANGED
|
@@ -119,6 +119,7 @@ def get_upload_dir() -> Path:
|
|
|
119
119
|
|
|
120
120
|
uploaded_files_url_prefix: Var = Var.create_safe(
|
|
121
121
|
"${getBackendURL(env.UPLOAD)}",
|
|
122
|
+
_var_is_string=False,
|
|
122
123
|
_var_data=VarData(
|
|
123
124
|
imports={
|
|
124
125
|
f"/{Dirs.STATE_PATH}": [imports.ImportVar(tag="getBackendURL")],
|
|
@@ -504,10 +504,13 @@ class CodeBlock(Component):
|
|
|
504
504
|
style=Var.create(
|
|
505
505
|
format.to_camel_case(f"{predicate}{qmark}{value.replace('`', '')}"),
|
|
506
506
|
_var_is_local=False,
|
|
507
|
+
_var_is_string=False,
|
|
507
508
|
)
|
|
508
509
|
).remove_props("theme", "code")
|
|
509
510
|
if self.code is not None:
|
|
510
|
-
out.special_props.add(
|
|
511
|
+
out.special_props.add(
|
|
512
|
+
Var.create_safe(f"children={str(self.code)}", _var_is_string=False)
|
|
513
|
+
)
|
|
511
514
|
return out
|
|
512
515
|
|
|
513
516
|
@staticmethod
|
|
@@ -263,7 +263,9 @@ class DataEditor(NoSSRComponent):
|
|
|
263
263
|
|
|
264
264
|
# Define the name of the getData callback associated with this component and assign to get_cell_content.
|
|
265
265
|
data_callback = f"getData_{editor_id}"
|
|
266
|
-
self.get_cell_content = Var.create(
|
|
266
|
+
self.get_cell_content = Var.create(
|
|
267
|
+
data_callback, _var_is_local=False, _var_is_string=False
|
|
268
|
+
) # type: ignore
|
|
267
269
|
|
|
268
270
|
code = [f"function {data_callback}([col, row])" "{"]
|
|
269
271
|
|
|
@@ -301,11 +303,7 @@ class DataEditor(NoSSRComponent):
|
|
|
301
303
|
|
|
302
304
|
# If rows is not provided, determine from data.
|
|
303
305
|
if rows is None:
|
|
304
|
-
props["rows"] = (
|
|
305
|
-
data.length() # BaseVar.create(value=f"{data}.length()", is_local=False)
|
|
306
|
-
if isinstance(data, Var)
|
|
307
|
-
else len(data)
|
|
308
|
-
)
|
|
306
|
+
props["rows"] = data.length() if isinstance(data, Var) else len(data)
|
|
309
307
|
|
|
310
308
|
if not isinstance(columns, Var) and len(columns):
|
|
311
309
|
if (
|
|
@@ -17,7 +17,7 @@ from reflex.vars import BaseVar, Var
|
|
|
17
17
|
|
|
18
18
|
from .base import BaseHTML
|
|
19
19
|
|
|
20
|
-
FORM_DATA = Var.create("form_data")
|
|
20
|
+
FORM_DATA = Var.create("form_data", _var_is_string=False)
|
|
21
21
|
HANDLE_SUBMIT_JS_JINJA2 = Environment().from_string(
|
|
22
22
|
"""
|
|
23
23
|
const handleSubmit_{{ handle_submit_unique_name }} = useCallback((ev) => {
|
|
@@ -221,17 +221,19 @@ class Form(BaseHTML):
|
|
|
221
221
|
# when ref start with refs_ it's an array of refs, so we need different method
|
|
222
222
|
# to collect data
|
|
223
223
|
if ref.startswith("refs_"):
|
|
224
|
-
ref_var = Var.create_safe(ref[:-3]).as_ref()
|
|
224
|
+
ref_var = Var.create_safe(ref[:-3], _var_is_string=False).as_ref()
|
|
225
225
|
form_refs[ref[5:-3]] = Var.create_safe(
|
|
226
226
|
f"getRefValues({str(ref_var)})",
|
|
227
227
|
_var_is_local=False,
|
|
228
|
+
_var_is_string=False,
|
|
228
229
|
_var_data=ref_var._var_data,
|
|
229
230
|
)
|
|
230
231
|
else:
|
|
231
|
-
ref_var = Var.create_safe(ref).as_ref()
|
|
232
|
+
ref_var = Var.create_safe(ref, _var_is_string=False).as_ref()
|
|
232
233
|
form_refs[ref[4:]] = Var.create_safe(
|
|
233
234
|
f"getRefValue({str(ref_var)})",
|
|
234
235
|
_var_is_local=False,
|
|
236
|
+
_var_is_string=False,
|
|
235
237
|
_var_data=ref_var._var_data,
|
|
236
238
|
)
|
|
237
239
|
return form_refs
|
|
@@ -630,6 +632,7 @@ class Textarea(BaseHTML):
|
|
|
630
632
|
on_key_down=Var.create_safe(
|
|
631
633
|
f"(e) => enterKeySubmitOnKeyDown(e, {self.enter_key_submit._var_name_unwrapped})",
|
|
632
634
|
_var_is_local=False,
|
|
635
|
+
_var_is_string=False,
|
|
633
636
|
_var_data=self.enter_key_submit._var_data,
|
|
634
637
|
)
|
|
635
638
|
)
|
|
@@ -638,6 +641,7 @@ class Textarea(BaseHTML):
|
|
|
638
641
|
on_input=Var.create_safe(
|
|
639
642
|
f"(e) => autoHeightOnInput(e, {self.auto_height._var_name_unwrapped})",
|
|
640
643
|
_var_is_local=False,
|
|
644
|
+
_var_is_string=False,
|
|
641
645
|
_var_data=self.auto_height._var_data,
|
|
642
646
|
)
|
|
643
647
|
)
|
|
@@ -19,7 +19,7 @@ from reflex.utils.format import format_event_chain
|
|
|
19
19
|
from reflex.vars import BaseVar, Var
|
|
20
20
|
from .base import BaseHTML
|
|
21
21
|
|
|
22
|
-
FORM_DATA = Var.create("form_data")
|
|
22
|
+
FORM_DATA = Var.create("form_data", _var_is_string=False)
|
|
23
23
|
HANDLE_SUBMIT_JS_JINJA2 = Environment().from_string(
|
|
24
24
|
"\n const handleSubmit_{{ handle_submit_unique_name }} = useCallback((ev) => {\n const $form = ev.target\n ev.preventDefault()\n const {{ form_data }} = {...Object.fromEntries(new FormData($form).entries()), ...{{ field_ref_mapping }}}\n\n {{ on_submit_event_chain }}\n\n if ({{ reset_on_submit }}) {\n $form.reset()\n }\n })\n "
|
|
25
25
|
)
|
|
@@ -23,19 +23,23 @@ from reflex.utils.imports import ImportVar
|
|
|
23
23
|
from reflex.vars import Var
|
|
24
24
|
|
|
25
25
|
# Special vars used in the component map.
|
|
26
|
-
_CHILDREN = Var.create_safe("children", _var_is_local=False)
|
|
27
|
-
_PROPS = Var.create_safe("...props", _var_is_local=False)
|
|
28
|
-
_MOCK_ARG = Var.create_safe("")
|
|
26
|
+
_CHILDREN = Var.create_safe("children", _var_is_local=False, _var_is_string=False)
|
|
27
|
+
_PROPS = Var.create_safe("...props", _var_is_local=False, _var_is_string=False)
|
|
28
|
+
_MOCK_ARG = Var.create_safe("", _var_is_string=False)
|
|
29
29
|
|
|
30
30
|
# Special remark plugins.
|
|
31
|
-
_REMARK_MATH = Var.create_safe("remarkMath", _var_is_local=False)
|
|
32
|
-
_REMARK_GFM = Var.create_safe("remarkGfm", _var_is_local=False)
|
|
33
|
-
_REMARK_UNWRAP_IMAGES = Var.create_safe(
|
|
31
|
+
_REMARK_MATH = Var.create_safe("remarkMath", _var_is_local=False, _var_is_string=False)
|
|
32
|
+
_REMARK_GFM = Var.create_safe("remarkGfm", _var_is_local=False, _var_is_string=False)
|
|
33
|
+
_REMARK_UNWRAP_IMAGES = Var.create_safe(
|
|
34
|
+
"remarkUnwrapImages", _var_is_local=False, _var_is_string=False
|
|
35
|
+
)
|
|
34
36
|
_REMARK_PLUGINS = Var.create_safe([_REMARK_MATH, _REMARK_GFM, _REMARK_UNWRAP_IMAGES])
|
|
35
37
|
|
|
36
38
|
# Special rehype plugins.
|
|
37
|
-
_REHYPE_KATEX = Var.create_safe(
|
|
38
|
-
|
|
39
|
+
_REHYPE_KATEX = Var.create_safe(
|
|
40
|
+
"rehypeKatex", _var_is_local=False, _var_is_string=False
|
|
41
|
+
)
|
|
42
|
+
_REHYPE_RAW = Var.create_safe("rehypeRaw", _var_is_local=False, _var_is_string=False)
|
|
39
43
|
_REHYPE_PLUGINS = Var.create_safe([_REHYPE_KATEX, _REHYPE_RAW])
|
|
40
44
|
|
|
41
45
|
# These tags do NOT get props passed to them
|
|
@@ -210,7 +214,9 @@ class Markdown(Component):
|
|
|
210
214
|
# If the children are set as a prop, don't pass them as children.
|
|
211
215
|
children_prop = props.pop("children", None)
|
|
212
216
|
if children_prop is not None:
|
|
213
|
-
special_props.add(
|
|
217
|
+
special_props.add(
|
|
218
|
+
Var.create_safe(f"children={str(children_prop)}", _var_is_string=False)
|
|
219
|
+
)
|
|
214
220
|
children = []
|
|
215
221
|
|
|
216
222
|
# Get the component.
|
|
@@ -259,7 +265,7 @@ class Markdown(Component):
|
|
|
259
265
|
return inline ? (
|
|
260
266
|
{self.format_component("code")}
|
|
261
267
|
) : (
|
|
262
|
-
{self.format_component("codeblock", language=Var.create_safe("language", _var_is_local=False))}
|
|
268
|
+
{self.format_component("codeblock", language=Var.create_safe("language", _var_is_local=False, _var_is_string=False))}
|
|
263
269
|
);
|
|
264
270
|
}}}}""".replace("\n", " ")
|
|
265
271
|
|
|
@@ -26,15 +26,19 @@ from reflex.utils import imports, types
|
|
|
26
26
|
from reflex.utils.imports import ImportVar
|
|
27
27
|
from reflex.vars import Var
|
|
28
28
|
|
|
29
|
-
_CHILDREN = Var.create_safe("children", _var_is_local=False)
|
|
30
|
-
_PROPS = Var.create_safe("...props", _var_is_local=False)
|
|
31
|
-
_MOCK_ARG = Var.create_safe("")
|
|
32
|
-
_REMARK_MATH = Var.create_safe("remarkMath", _var_is_local=False)
|
|
33
|
-
_REMARK_GFM = Var.create_safe("remarkGfm", _var_is_local=False)
|
|
34
|
-
_REMARK_UNWRAP_IMAGES = Var.create_safe(
|
|
29
|
+
_CHILDREN = Var.create_safe("children", _var_is_local=False, _var_is_string=False)
|
|
30
|
+
_PROPS = Var.create_safe("...props", _var_is_local=False, _var_is_string=False)
|
|
31
|
+
_MOCK_ARG = Var.create_safe("", _var_is_string=False)
|
|
32
|
+
_REMARK_MATH = Var.create_safe("remarkMath", _var_is_local=False, _var_is_string=False)
|
|
33
|
+
_REMARK_GFM = Var.create_safe("remarkGfm", _var_is_local=False, _var_is_string=False)
|
|
34
|
+
_REMARK_UNWRAP_IMAGES = Var.create_safe(
|
|
35
|
+
"remarkUnwrapImages", _var_is_local=False, _var_is_string=False
|
|
36
|
+
)
|
|
35
37
|
_REMARK_PLUGINS = Var.create_safe([_REMARK_MATH, _REMARK_GFM, _REMARK_UNWRAP_IMAGES])
|
|
36
|
-
_REHYPE_KATEX = Var.create_safe(
|
|
37
|
-
|
|
38
|
+
_REHYPE_KATEX = Var.create_safe(
|
|
39
|
+
"rehypeKatex", _var_is_local=False, _var_is_string=False
|
|
40
|
+
)
|
|
41
|
+
_REHYPE_RAW = Var.create_safe("rehypeRaw", _var_is_local=False, _var_is_string=False)
|
|
38
42
|
_REHYPE_PLUGINS = Var.create_safe([_REHYPE_KATEX, _REHYPE_RAW])
|
|
39
43
|
NO_PROPS_TAGS = ("ul", "ol", "li")
|
|
40
44
|
|
|
@@ -29,7 +29,7 @@ def _event_data_signature(e0: Var) -> List[Any]:
|
|
|
29
29
|
Returns:
|
|
30
30
|
The event key extracted from the event data (if defined).
|
|
31
31
|
"""
|
|
32
|
-
return [Var.create_safe(f"{e0}?.event")]
|
|
32
|
+
return [Var.create_safe(f"{e0}?.event", _var_is_string=False)]
|
|
33
33
|
|
|
34
34
|
|
|
35
35
|
def _event_points_data_signature(e0: Var) -> List[Any]:
|
|
@@ -42,9 +42,10 @@ def _event_points_data_signature(e0: Var) -> List[Any]:
|
|
|
42
42
|
The event data and the extracted points.
|
|
43
43
|
"""
|
|
44
44
|
return [
|
|
45
|
-
Var.create_safe(f"{e0}?.event"),
|
|
45
|
+
Var.create_safe(f"{e0}?.event", _var_is_string=False),
|
|
46
46
|
Var.create_safe(
|
|
47
47
|
f"extractPoints({e0}?.points)",
|
|
48
|
+
_var_is_string=False,
|
|
48
49
|
),
|
|
49
50
|
]
|
|
50
51
|
|
|
@@ -277,11 +278,14 @@ const extractPoints = (points) => {
|
|
|
277
278
|
Var.create_safe(
|
|
278
279
|
f"{{...mergician({figure._var_name_unwrapped},"
|
|
279
280
|
f"{','.join(md._var_name_unwrapped for md in merge_dicts)})}}",
|
|
281
|
+
_var_is_string=False,
|
|
280
282
|
),
|
|
281
283
|
)
|
|
282
284
|
else:
|
|
283
285
|
# Spread the figure dict over props, nothing to merge.
|
|
284
286
|
tag.special_props.add(
|
|
285
|
-
Var.create_safe(
|
|
287
|
+
Var.create_safe(
|
|
288
|
+
f"{{...{figure._var_name_unwrapped}}}", _var_is_string=False
|
|
289
|
+
)
|
|
286
290
|
)
|
|
287
291
|
return tag
|
|
@@ -105,7 +105,7 @@ class AccordionRoot(AccordionComponent):
|
|
|
105
105
|
duration: Var[int] = Var.create_safe(DEFAULT_ANIMATION_DURATION)
|
|
106
106
|
|
|
107
107
|
# The easing function to use for the animation.
|
|
108
|
-
easing: Var[str] = Var.create_safe(DEFAULT_ANIMATION_EASING)
|
|
108
|
+
easing: Var[str] = Var.create_safe(DEFAULT_ANIMATION_EASING, _var_is_string=True)
|
|
109
109
|
|
|
110
110
|
# Whether to show divider lines between items.
|
|
111
111
|
show_dividers: Var[bool]
|
|
@@ -73,7 +73,7 @@ position_map = {
|
|
|
73
73
|
|
|
74
74
|
# needed to inverse contains for find
|
|
75
75
|
def _find(const, var):
|
|
76
|
-
return Var.create_safe(const).contains(var)
|
|
76
|
+
return Var.create_safe(const, _var_is_string=False).contains(var)
|
|
77
77
|
|
|
78
78
|
|
|
79
79
|
def _set_var_default(props, position, prop, default1, default2=""):
|
|
@@ -130,7 +130,9 @@ class HighLevelCheckbox(RadixThemesComponent):
|
|
|
130
130
|
}
|
|
131
131
|
|
|
132
132
|
@classmethod
|
|
133
|
-
def create(
|
|
133
|
+
def create(
|
|
134
|
+
cls, text: Var[str] = Var.create_safe("", _var_is_string=True), **props
|
|
135
|
+
) -> Component:
|
|
134
136
|
"""Create a checkbox with a label.
|
|
135
137
|
|
|
136
138
|
Args:
|
|
@@ -91,10 +91,10 @@ class HighLevelRadioGroup(RadixThemesComponent):
|
|
|
91
91
|
direction: Var[LiteralFlexDirection]
|
|
92
92
|
|
|
93
93
|
# The gap between the items of the radio group.
|
|
94
|
-
spacing: Var[LiteralSpacing] = Var.create_safe("2")
|
|
94
|
+
spacing: Var[LiteralSpacing] = Var.create_safe("2", _var_is_string=True)
|
|
95
95
|
|
|
96
96
|
# The size of the radio group.
|
|
97
|
-
size: Var[Literal["1", "2", "3"]] = Var.create_safe("2")
|
|
97
|
+
size: Var[Literal["1", "2", "3"]] = Var.create_safe("2", _var_is_string=True)
|
|
98
98
|
|
|
99
99
|
# The variant of the radio group
|
|
100
100
|
variant: Var[Literal["classic", "surface", "soft"]]
|
|
@@ -151,11 +151,13 @@ class HighLevelRadioGroup(RadixThemesComponent):
|
|
|
151
151
|
default_value = Var.create(default_value, _var_is_string=True) # type: ignore
|
|
152
152
|
else:
|
|
153
153
|
default_value = (
|
|
154
|
-
Var.create(default_value
|
|
154
|
+
Var.create(default_value, _var_is_string=False)
|
|
155
|
+
.to_string() # type: ignore
|
|
156
|
+
._replace(_var_is_local=False)
|
|
155
157
|
)
|
|
156
158
|
|
|
157
159
|
def radio_group_item(value: str | Var) -> Component:
|
|
158
|
-
item_value = Var.create(value) # type: ignore
|
|
160
|
+
item_value = Var.create(value, _var_is_string=False) # type: ignore
|
|
159
161
|
item_value = rx.cond(
|
|
160
162
|
item_value._type() == str, # type: ignore
|
|
161
163
|
item_value,
|
|
@@ -17,7 +17,7 @@ class Separator(RadixThemesComponent):
|
|
|
17
17
|
tag = "Separator"
|
|
18
18
|
|
|
19
19
|
# The size of the select: "1" | "2" | "3" | "4"
|
|
20
|
-
size: Var[LiteralSeperatorSize] = Var.create_safe("4")
|
|
20
|
+
size: Var[LiteralSeperatorSize] = Var.create_safe("4", _var_is_string=True)
|
|
21
21
|
|
|
22
22
|
# The color of the select
|
|
23
23
|
color_scheme: Var[LiteralAccentColor]
|
|
@@ -21,7 +21,7 @@ class Container(elements.Div, RadixThemesComponent):
|
|
|
21
21
|
tag = "Container"
|
|
22
22
|
|
|
23
23
|
# The size of the container: "1" - "4" (default "3")
|
|
24
|
-
size: Var[LiteralContainerSize] = Var.create_safe("3")
|
|
24
|
+
size: Var[LiteralContainerSize] = Var.create_safe("3", _var_is_string=True)
|
|
25
25
|
|
|
26
26
|
@classmethod
|
|
27
27
|
def create(
|
|
@@ -17,7 +17,7 @@ class Section(elements.Section, RadixThemesComponent):
|
|
|
17
17
|
tag = "Section"
|
|
18
18
|
|
|
19
19
|
# The size of the section: "1" - "3" (default "2")
|
|
20
|
-
size: Var[LiteralSectionSize] = Var.create_safe("2")
|
|
20
|
+
size: Var[LiteralSectionSize] = Var.create_safe("2", _var_is_string=True)
|
|
21
21
|
|
|
22
22
|
|
|
23
23
|
section = Section.create
|
|
@@ -150,7 +150,7 @@ class BarChart(ChartBase):
|
|
|
150
150
|
alias = "RechartsBarChart"
|
|
151
151
|
|
|
152
152
|
# The gap between two bar categories, which can be a percent value or a fixed value. Percentage | Number
|
|
153
|
-
bar_category_gap: Var[Union[str, int]] = Var.create_safe("10%") # type: ignore
|
|
153
|
+
bar_category_gap: Var[Union[str, int]] = Var.create_safe("10%", _var_is_string=True) # type: ignore
|
|
154
154
|
|
|
155
155
|
# The gap between two bars in the same category, which can be a percent value or a fixed value. Percentage | Number
|
|
156
156
|
bar_gap: Var[Union[str, int]] = Var.create_safe(4) # type: ignore
|
|
@@ -28,7 +28,7 @@ LiteralPosition = Literal[
|
|
|
28
28
|
]
|
|
29
29
|
|
|
30
30
|
|
|
31
|
-
toast_ref = Var.create_safe("refs['__toast']")
|
|
31
|
+
toast_ref = Var.create_safe("refs['__toast']", _var_is_string=False)
|
|
32
32
|
|
|
33
33
|
|
|
34
34
|
class ToastAction(Base):
|
|
@@ -65,7 +65,8 @@ def _toast_callback_signature(toast: Var) -> list[Var]:
|
|
|
65
65
|
"""
|
|
66
66
|
return [
|
|
67
67
|
Var.create_safe(
|
|
68
|
-
f"(() => {{let {{action, cancel, onDismiss, onAutoClose, ...rest}} = {toast}; return rest}})()"
|
|
68
|
+
f"(() => {{let {{action, cancel, onDismiss, onAutoClose, ...rest}} = {toast}; return rest}})()",
|
|
69
|
+
_var_is_string=False,
|
|
69
70
|
)
|
|
70
71
|
]
|
|
71
72
|
|
|
@@ -179,7 +180,9 @@ class Toaster(Component):
|
|
|
179
180
|
visible_toasts: Var[int]
|
|
180
181
|
|
|
181
182
|
# the position of the toast
|
|
182
|
-
position: Var[LiteralPosition] = Var.create_safe(
|
|
183
|
+
position: Var[LiteralPosition] = Var.create_safe(
|
|
184
|
+
"bottom-right", _var_is_string=True
|
|
185
|
+
)
|
|
183
186
|
|
|
184
187
|
# whether to show the close button
|
|
185
188
|
close_button: Var[bool] = Var.create_safe(False)
|
|
@@ -217,6 +220,7 @@ class Toaster(Component):
|
|
|
217
220
|
hook = Var.create_safe(
|
|
218
221
|
f"{toast_ref} = toast",
|
|
219
222
|
_var_is_local=True,
|
|
223
|
+
_var_is_string=False,
|
|
220
224
|
_var_data=VarData(
|
|
221
225
|
imports={
|
|
222
226
|
"/utils/state": [ImportVar(tag="refs")],
|
reflex/components/tags/tag.py
CHANGED
|
@@ -41,7 +41,8 @@ class Tag(Base):
|
|
|
41
41
|
# Convert any props to vars.
|
|
42
42
|
if "props" in kwargs:
|
|
43
43
|
kwargs["props"] = {
|
|
44
|
-
name: Var.create(value
|
|
44
|
+
name: Var.create(value, _var_is_string=False)
|
|
45
|
+
for name, value in kwargs["props"].items()
|
|
45
46
|
}
|
|
46
47
|
super().__init__(*args, **kwargs)
|
|
47
48
|
|
reflex/event.py
CHANGED
|
@@ -186,7 +186,7 @@ class EventHandler(EventActionsMixin):
|
|
|
186
186
|
|
|
187
187
|
# Get the function args.
|
|
188
188
|
fn_args = inspect.getfullargspec(self.fn).args[1:]
|
|
189
|
-
fn_args = (Var.create_safe(arg) for arg in fn_args)
|
|
189
|
+
fn_args = (Var.create_safe(arg, _var_is_string=False) for arg in fn_args)
|
|
190
190
|
|
|
191
191
|
# Construct the payload.
|
|
192
192
|
values = []
|
|
@@ -264,7 +264,7 @@ class EventSpec(EventActionsMixin):
|
|
|
264
264
|
|
|
265
265
|
# Get the remaining unfilled function args.
|
|
266
266
|
fn_args = inspect.getfullargspec(self.handler.fn).args[1 + len(self.args) :]
|
|
267
|
-
fn_args = (Var.create_safe(arg) for arg in fn_args)
|
|
267
|
+
fn_args = (Var.create_safe(arg, _var_is_string=False) for arg in fn_args)
|
|
268
268
|
|
|
269
269
|
# Construct the payload.
|
|
270
270
|
values = []
|
|
@@ -389,13 +389,13 @@ class FileUpload(Base):
|
|
|
389
389
|
|
|
390
390
|
spec_args = [
|
|
391
391
|
(
|
|
392
|
-
Var.create_safe("files"),
|
|
393
|
-
Var.create_safe(
|
|
394
|
-
|
|
395
|
-
),
|
|
392
|
+
Var.create_safe("files", _var_is_string=False),
|
|
393
|
+
Var.create_safe(
|
|
394
|
+
f"filesById.{upload_id}", _var_is_string=False
|
|
395
|
+
)._replace(_var_data=upload_files_context_var_data),
|
|
396
396
|
),
|
|
397
397
|
(
|
|
398
|
-
Var.create_safe("upload_id"),
|
|
398
|
+
Var.create_safe("upload_id", _var_is_string=False),
|
|
399
399
|
Var.create_safe(upload_id, _var_is_string=True),
|
|
400
400
|
),
|
|
401
401
|
]
|
|
@@ -424,7 +424,7 @@ class FileUpload(Base):
|
|
|
424
424
|
formatted_chain = str(format.format_prop(on_upload_progress_chain))
|
|
425
425
|
spec_args.append(
|
|
426
426
|
(
|
|
427
|
-
Var.create_safe("on_upload_progress"),
|
|
427
|
+
Var.create_safe("on_upload_progress", _var_is_string=False),
|
|
428
428
|
BaseVar(
|
|
429
429
|
_var_name=formatted_chain.strip("{}"),
|
|
430
430
|
_var_type=EventChain,
|
|
@@ -464,7 +464,10 @@ def server_side(name: str, sig: inspect.Signature, **kwargs) -> EventSpec:
|
|
|
464
464
|
return EventSpec(
|
|
465
465
|
handler=EventHandler(fn=fn),
|
|
466
466
|
args=tuple(
|
|
467
|
-
(
|
|
467
|
+
(
|
|
468
|
+
Var.create_safe(k, _var_is_string=False),
|
|
469
|
+
Var.create_safe(v, _var_is_string=isinstance(v, str)),
|
|
470
|
+
)
|
|
468
471
|
for k, v in kwargs.items()
|
|
469
472
|
),
|
|
470
473
|
)
|
reflex/experimental/hooks.py
CHANGED
|
@@ -20,8 +20,10 @@ def const(name, value) -> Var:
|
|
|
20
20
|
The constant Var.
|
|
21
21
|
"""
|
|
22
22
|
if isinstance(name, list):
|
|
23
|
-
return Var.create_safe(
|
|
24
|
-
|
|
23
|
+
return Var.create_safe(
|
|
24
|
+
f"const [{', '.join(name)}] = {value}", _var_is_string=False
|
|
25
|
+
)
|
|
26
|
+
return Var.create_safe(f"const {name} = {value}", _var_is_string=False)
|
|
25
27
|
|
|
26
28
|
|
|
27
29
|
def useCallback(func, deps) -> Var:
|
|
@@ -36,6 +38,7 @@ def useCallback(func, deps) -> Var:
|
|
|
36
38
|
"""
|
|
37
39
|
return Var.create_safe(
|
|
38
40
|
f"useCallback({func}, {deps})" if deps else f"useCallback({func})",
|
|
41
|
+
_var_is_string=False,
|
|
39
42
|
_var_data=VarData(imports=_compose_react_imports(["useCallback"])),
|
|
40
43
|
)
|
|
41
44
|
|
|
@@ -51,6 +54,7 @@ def useContext(context) -> Var:
|
|
|
51
54
|
"""
|
|
52
55
|
return Var.create_safe(
|
|
53
56
|
f"useContext({context})",
|
|
57
|
+
_var_is_string=False,
|
|
54
58
|
_var_data=VarData(imports=_compose_react_imports(["useContext"])),
|
|
55
59
|
)
|
|
56
60
|
|
|
@@ -66,6 +70,7 @@ def useRef(default) -> Var:
|
|
|
66
70
|
"""
|
|
67
71
|
return Var.create_safe(
|
|
68
72
|
f"useRef({default})",
|
|
73
|
+
_var_is_string=False,
|
|
69
74
|
_var_data=VarData(imports=_compose_react_imports(["useRef"])),
|
|
70
75
|
)
|
|
71
76
|
|
|
@@ -84,6 +89,7 @@ def useState(var_name, default=None) -> Var:
|
|
|
84
89
|
[var_name, f"set{var_name.capitalize()}"],
|
|
85
90
|
Var.create_safe(
|
|
86
91
|
f"useState({default})",
|
|
92
|
+
_var_is_string=False,
|
|
87
93
|
_var_data=VarData(imports=_compose_react_imports(["useState"])),
|
|
88
94
|
),
|
|
89
95
|
)
|
reflex/experimental/layout.py
CHANGED
|
@@ -52,7 +52,11 @@ class Sidebar(Box, MemoizationLeaf):
|
|
|
52
52
|
"""
|
|
53
53
|
sidebar: Component = self.children[-2] # type: ignore
|
|
54
54
|
spacer: Component = self.children[-1] # type: ignore
|
|
55
|
-
open =
|
|
55
|
+
open = (
|
|
56
|
+
self.State.open # type: ignore
|
|
57
|
+
if self.State
|
|
58
|
+
else Var.create_safe("open", _var_is_string=False)
|
|
59
|
+
)
|
|
56
60
|
sidebar.style["display"] = spacer.style["display"] = cond(open, "block", "none")
|
|
57
61
|
|
|
58
62
|
return Style(
|
|
@@ -167,7 +171,10 @@ class SidebarTrigger(Fragment):
|
|
|
167
171
|
if sidebar.State:
|
|
168
172
|
open, toggle = sidebar.State.open, sidebar.State.toggle # type: ignore
|
|
169
173
|
else:
|
|
170
|
-
open, toggle =
|
|
174
|
+
open, toggle = (
|
|
175
|
+
Var.create_safe("open", _var_is_string=False),
|
|
176
|
+
call_script(Var.create_safe("setOpen(!open)", _var_is_string=False)),
|
|
177
|
+
)
|
|
171
178
|
|
|
172
179
|
trigger_props["left"] = cond(open, f"calc({sidebar_width} - 32px)", "0")
|
|
173
180
|
|
reflex/style.py
CHANGED
|
@@ -79,7 +79,7 @@ def convert_item(style_item: str | Var) -> tuple[str, VarData | None]:
|
|
|
79
79
|
return str(style_item), style_item._var_data
|
|
80
80
|
|
|
81
81
|
# Otherwise, convert to Var to collapse VarData encoded in f-string.
|
|
82
|
-
new_var = Var.create(style_item)
|
|
82
|
+
new_var = Var.create(style_item, _var_is_string=False)
|
|
83
83
|
if new_var is not None and new_var._var_data:
|
|
84
84
|
# The wrapped backtick is used to identify the Var for interpolation.
|
|
85
85
|
return f"`{str(new_var)}`", new_var._var_data
|
|
@@ -204,7 +204,7 @@ class Style(dict):
|
|
|
204
204
|
value: The value to set.
|
|
205
205
|
"""
|
|
206
206
|
# Create a Var to collapse VarData encoded in f-string.
|
|
207
|
-
_var = Var.create(value)
|
|
207
|
+
_var = Var.create(value, _var_is_string=False)
|
|
208
208
|
if _var is not None:
|
|
209
209
|
# Carry the imports/hooks when setting a Var as a value.
|
|
210
210
|
self._var_data = VarData.merge(self._var_data, _var._var_data)
|
reflex/utils/format.py
CHANGED
|
@@ -916,4 +916,7 @@ def format_data_editor_cell(cell: Any):
|
|
|
916
916
|
Returns:
|
|
917
917
|
The formatted cell.
|
|
918
918
|
"""
|
|
919
|
-
return {
|
|
919
|
+
return {
|
|
920
|
+
"kind": Var.create(value="GridCellKind.Text", _var_is_string=False),
|
|
921
|
+
"data": cell,
|
|
922
|
+
}
|
reflex/vars.py
CHANGED
|
@@ -535,7 +535,7 @@ class Var:
|
|
|
535
535
|
if other is None:
|
|
536
536
|
return self._replace()
|
|
537
537
|
if not isinstance(other, Var):
|
|
538
|
-
other = Var.create(other)
|
|
538
|
+
other = Var.create(other, _var_is_string=False)
|
|
539
539
|
return self._replace(
|
|
540
540
|
_var_name=f"{{...{self._var_name}, ...{other._var_name}}}" # type: ignore
|
|
541
541
|
)
|
|
@@ -831,9 +831,9 @@ class Var:
|
|
|
831
831
|
from reflex.utils import format
|
|
832
832
|
|
|
833
833
|
if isinstance(other, str):
|
|
834
|
-
other = Var.create(json.dumps(other))
|
|
834
|
+
other = Var.create(json.dumps(other), _var_is_string=False)
|
|
835
835
|
else:
|
|
836
|
-
other = Var.create(other)
|
|
836
|
+
other = Var.create(other, _var_is_string=False)
|
|
837
837
|
|
|
838
838
|
type_ = type_ or self._var_type
|
|
839
839
|
|
|
@@ -1416,7 +1416,7 @@ class Var:
|
|
|
1416
1416
|
if isinstance(other, str):
|
|
1417
1417
|
other = Var.create(json.dumps(other), _var_is_string=True)
|
|
1418
1418
|
elif not isinstance(other, Var):
|
|
1419
|
-
other = Var.create(other)
|
|
1419
|
+
other = Var.create(other, _var_is_string=False)
|
|
1420
1420
|
if types._issubclass(self._var_type, Dict):
|
|
1421
1421
|
return self._replace(
|
|
1422
1422
|
_var_name=f"{self._var_name}.{method}({other._var_full_name})",
|
|
@@ -1520,7 +1520,11 @@ class Var:
|
|
|
1520
1520
|
if not types._issubclass(self._var_type, str):
|
|
1521
1521
|
raise VarTypeError(f"Cannot strip non-string var {self._var_full_name}.")
|
|
1522
1522
|
|
|
1523
|
-
other =
|
|
1523
|
+
other = (
|
|
1524
|
+
Var.create_safe(json.dumps(other), _var_is_string=False)
|
|
1525
|
+
if isinstance(other, str)
|
|
1526
|
+
else other
|
|
1527
|
+
)
|
|
1524
1528
|
|
|
1525
1529
|
return self._replace(
|
|
1526
1530
|
_var_name=f"{self._var_name}.replace(/^${other._var_full_name}|${other._var_full_name}$/g, '')",
|
|
@@ -1543,7 +1547,11 @@ class Var:
|
|
|
1543
1547
|
if not types._issubclass(self._var_type, str):
|
|
1544
1548
|
raise VarTypeError(f"Cannot split non-string var {self._var_full_name}.")
|
|
1545
1549
|
|
|
1546
|
-
other =
|
|
1550
|
+
other = (
|
|
1551
|
+
Var.create_safe(json.dumps(other), _var_is_string=False)
|
|
1552
|
+
if isinstance(other, str)
|
|
1553
|
+
else other
|
|
1554
|
+
)
|
|
1547
1555
|
|
|
1548
1556
|
return self._replace(
|
|
1549
1557
|
_var_name=f"{self._var_name}.split({other._var_full_name})",
|
|
@@ -1568,11 +1576,11 @@ class Var:
|
|
|
1568
1576
|
raise VarTypeError(f"Cannot join non-list var {self._var_full_name}.")
|
|
1569
1577
|
|
|
1570
1578
|
if other is None:
|
|
1571
|
-
other = Var.create_safe('""')
|
|
1579
|
+
other = Var.create_safe('""', _var_is_string=False)
|
|
1572
1580
|
if isinstance(other, str):
|
|
1573
|
-
other = Var.create_safe(json.dumps(other))
|
|
1581
|
+
other = Var.create_safe(json.dumps(other), _var_is_string=False)
|
|
1574
1582
|
else:
|
|
1575
|
-
other = Var.create_safe(other)
|
|
1583
|
+
other = Var.create_safe(other, _var_is_string=False)
|
|
1576
1584
|
|
|
1577
1585
|
return self._replace(
|
|
1578
1586
|
_var_name=f"{self._var_name}.join({other._var_full_name})",
|
|
@@ -1641,7 +1649,7 @@ class Var:
|
|
|
1641
1649
|
if not isinstance(v2, Var):
|
|
1642
1650
|
v2 = Var.create(v2)
|
|
1643
1651
|
if v2 is None:
|
|
1644
|
-
v2 = Var.create_safe("undefined")
|
|
1652
|
+
v2 = Var.create_safe("undefined", _var_is_string=False)
|
|
1645
1653
|
elif v2._var_type != int:
|
|
1646
1654
|
raise VarTypeError(f"Cannot get range on non-int var {v2._var_full_name}.")
|
|
1647
1655
|
|
|
@@ -95,7 +95,7 @@ reflex/components/base/meta.pyi,sha256=5JJdNt2irustsLfgkyCAP5_Q8bg3sKm6CpPZ3pO4e
|
|
|
95
95
|
reflex/components/base/script.py,sha256=_AfHhLy2DJnb_9zIsYyjaYvSUuWpXIh8LNB1Zicesq0,2323
|
|
96
96
|
reflex/components/base/script.pyi,sha256=NkEgHT9WVWnSE8tHPwLl9MFjKg5TCFCQIWvHHFg9vOI,4524
|
|
97
97
|
reflex/components/chakra/__init__.py,sha256=IvxaXNdJH_df-HZRf4IXilvl6XpLLzIzCSlLL0KVMsU,6378
|
|
98
|
-
reflex/components/chakra/base.py,sha256=
|
|
98
|
+
reflex/components/chakra/base.py,sha256=oK8m7AXR_LQL3cs1bznayqLpLvGWJIrNOYAxV9Wz3Rw,5294
|
|
99
99
|
reflex/components/chakra/base.pyi,sha256=YitA2O1JU7akR8SEFxPuaDeEXjt1W5JrButw6nnlmCg,10917
|
|
100
100
|
reflex/components/chakra/datadisplay/__init__.py,sha256=yDWJHYXf8i-WTXMdAAU4alskP1RLizvsYt9BKAi0Uts,459
|
|
101
101
|
reflex/components/chakra/datadisplay/badge.py,sha256=G0x7yacjFYQSD0Wrxc6UvC3kHJJ-qlRNbDyONxpbVmU,352
|
|
@@ -137,7 +137,7 @@ reflex/components/chakra/feedback/spinner.pyi,sha256=2Prqil2CD4WzhPHozfRy6i92U9M
|
|
|
137
137
|
reflex/components/chakra/forms/__init__.py,sha256=6TeCxpmKfVy3IxkhTE8amKowHiprEs5Q9P4C_BArygE,1453
|
|
138
138
|
reflex/components/chakra/forms/button.py,sha256=tglnHifAxYlP8U08zrr5mSB3yrg52qUD-4rq3I3jJf0,2395
|
|
139
139
|
reflex/components/chakra/forms/button.pyi,sha256=fgkzTkqvk_QAyqLOZ9pmvc7RY4F8jWCD45kV18vXkr8,10545
|
|
140
|
-
reflex/components/chakra/forms/checkbox.py,sha256=
|
|
140
|
+
reflex/components/chakra/forms/checkbox.py,sha256=CQck4B-G6UiBeEAzIedatHoCVshKJUD2LjCG0Cod4dc,2785
|
|
141
141
|
reflex/components/chakra/forms/checkbox.pyi,sha256=otg0hV05KaU0BT_46LtIr91ERHPHtKV1ILiJl5SKsDU,10301
|
|
142
142
|
reflex/components/chakra/forms/colormodeswitch.py,sha256=Cveeiop0yXsoMKid2cc7fDwhAgfFPGf2cTAtEdIkqi8,2860
|
|
143
143
|
reflex/components/chakra/forms/colormodeswitch.pyi,sha256=lxzi6hzj2SifnQZNAdQWLFTXpGix6V6ggJENQhi3OO8,18459
|
|
@@ -160,11 +160,11 @@ reflex/components/chakra/forms/numberinput.py,sha256=8TrkEmE4PyxDQ0nlHIWwz-1Jhpy
|
|
|
160
160
|
reflex/components/chakra/forms/numberinput.pyi,sha256=vM0cxbbKgaH8EtIBKCElEo9TE9SEzeDOFbyMSyF2-Cc,18093
|
|
161
161
|
reflex/components/chakra/forms/password.py,sha256=rjFELopI5j5exce9QZJqf4hSIp5aW44DUbpbpfiB24w,256
|
|
162
162
|
reflex/components/chakra/forms/password.pyi,sha256=7fVBY1OjuJKJZiOIZrDgjBUBMzg1UCQGWlRsPpVr0Qs,5834
|
|
163
|
-
reflex/components/chakra/forms/pininput.py,sha256=
|
|
163
|
+
reflex/components/chakra/forms/pininput.py,sha256=Pq6bBIixZbwLd3e40k2DkCwpGUA_fA5zz7aVfM1HGAI,6525
|
|
164
164
|
reflex/components/chakra/forms/pininput.pyi,sha256=iGhgp2XjZ74YM0jkdW-jGsZJflunfWwhD6co_me4GgI,9369
|
|
165
165
|
reflex/components/chakra/forms/radio.py,sha256=WLTyDrWYq-u6fVviURs8_oKrn8q-CGq2v40x3qC3lcA,3172
|
|
166
166
|
reflex/components/chakra/forms/radio.pyi,sha256=zLWvegKDJFCLFi-kPfjQvm0xVHl3GVoBAsqumkI_kpI,8410
|
|
167
|
-
reflex/components/chakra/forms/rangeslider.py,sha256=
|
|
167
|
+
reflex/components/chakra/forms/rangeslider.py,sha256=1phPUC72HQVPgLHyWEMpoGkTfC17rOYPEVVfAPZB5RM,4565
|
|
168
168
|
reflex/components/chakra/forms/rangeslider.pyi,sha256=nXAMZhD_thS2UuSTsYOCXuMkm6azASjFbhZAEoq9l2c,13939
|
|
169
169
|
reflex/components/chakra/forms/select.py,sha256=20J-MnaRSbRY2TjnbrlSIQrJMWJ7IKNWQGXj4mVEQUY,3624
|
|
170
170
|
reflex/components/chakra/forms/select.pyi,sha256=d44yf0lTQtFi_fB4d_4DkeAk_itTM-IWLvCuYdibJu4,8868
|
|
@@ -207,7 +207,7 @@ reflex/components/chakra/media/image.pyi,sha256=hAZOf41BYjw1J0wiI6gGaftYqa70XYyT
|
|
|
207
207
|
reflex/components/chakra/navigation/__init__.py,sha256=4S77tyjUNQfrKW1ablw3L8q2hNz8k04eSvtmoPN65tg,419
|
|
208
208
|
reflex/components/chakra/navigation/breadcrumb.py,sha256=b6hhci_Qw3qgCGYa-_xqsQNJSZyoWkVA48rXkTe6Ocs,2925
|
|
209
209
|
reflex/components/chakra/navigation/breadcrumb.pyi,sha256=iidg33UcoO6pnY_Zt7a5yFS5mitCucOcgG5PNbOhgQ0,13575
|
|
210
|
-
reflex/components/chakra/navigation/link.py,sha256=
|
|
210
|
+
reflex/components/chakra/navigation/link.py,sha256=EWRwmisrMXbgQVajbKNsimwXuK5sDlj2_otI0grsy8I,1511
|
|
211
211
|
reflex/components/chakra/navigation/link.pyi,sha256=Sb3bKMn2fgKb5_2AIc2Db3PAfbe1xyUcj_VX7xei7sA,3999
|
|
212
212
|
reflex/components/chakra/navigation/linkoverlay.py,sha256=eaGeVhohX5-NuQN8FqheHfRp79NVJN-cNslR978P7bE,521
|
|
213
213
|
reflex/components/chakra/navigation/linkoverlay.pyi,sha256=5_75CqKTqVrgzOFBHxhab0A612fI5fwj2qpBLUpZlOA,6233
|
|
@@ -235,30 +235,30 @@ reflex/components/chakra/typography/span.py,sha256=2DbW5DB27ijtTeugSDUVp3nQ64mrG
|
|
|
235
235
|
reflex/components/chakra/typography/span.pyi,sha256=itDe7RpjJN_K_9pZ7n_U9qlrTshGejv9lh5plvh3DCU,3372
|
|
236
236
|
reflex/components/chakra/typography/text.py,sha256=9YXBdK5UYqgDam3ITeRSnd8bu9ht3zydt0pkmJAECsk,472
|
|
237
237
|
reflex/components/chakra/typography/text.pyi,sha256=FzqNtf0NUkGmRLrazSyfKHqznJjz_KCryU-2sRghZ0M,3596
|
|
238
|
-
reflex/components/component.py,sha256=
|
|
238
|
+
reflex/components/component.py,sha256=NBnSyrsnTKWLWBJrgzOswdsp6X5Lu--G8gOIfZTsZdY,78219
|
|
239
239
|
reflex/components/core/__init__.py,sha256=96AHGkr07-cYckZqHg2ba_sAl964-S__CPYfM_wXHBk,1184
|
|
240
240
|
reflex/components/core/__init__.pyi,sha256=a-Mo7MQPoKLaVGlR_qVCrYPesCZd57tftynedO7-qvw,1828
|
|
241
|
-
reflex/components/core/banner.py,sha256=
|
|
241
|
+
reflex/components/core/banner.py,sha256=w9TwtOQM6LaM_iGDulUchzQ3WPErT2tc_T0T5-oXwpA,8261
|
|
242
242
|
reflex/components/core/banner.pyi,sha256=bEd8owWyrLNmNs6prgj1ZtrirS2ZSajkKmGXVdNXaKg,22710
|
|
243
|
-
reflex/components/core/client_side_routing.py,sha256=
|
|
243
|
+
reflex/components/core/client_side_routing.py,sha256=nndjrwyj139AB1Ha6nBKG_7Zs_Pu42rTwxG2eNVzFWY,1902
|
|
244
244
|
reflex/components/core/client_side_routing.pyi,sha256=hQ3Z6JGiFTMn94-U5SWE05KKA7rP2-WirXB7wefMCEw,6306
|
|
245
245
|
reflex/components/core/colors.py,sha256=-hzVGLEq3TiqroqzMi_YzGBCPXMvkNsen3pS_NzIQNk,590
|
|
246
246
|
reflex/components/core/cond.py,sha256=4jKcg9IBprpWAGY28Iymxe5Pu0UMEH-2e64zIkmf7_w,6163
|
|
247
|
-
reflex/components/core/debounce.py,sha256=
|
|
247
|
+
reflex/components/core/debounce.py,sha256=1oUUAZERsQ35Mr557zhgCRsgUU60R1YdDIsn58YRlAY,4912
|
|
248
248
|
reflex/components/core/debounce.pyi,sha256=t0adfaCRfIellS8PDl6witgpBHoz9jk0SW0f82AHxxU,4255
|
|
249
|
-
reflex/components/core/foreach.py,sha256=
|
|
249
|
+
reflex/components/core/foreach.py,sha256=03gqSKJ0RG819lXux14X-hi0Fuz5y5fhJAxyIfxFkc0,4781
|
|
250
250
|
reflex/components/core/html.py,sha256=itZk4A8__Jfe8LwXey4tSlxTyZsKsHAPsHIcXVt42Y4,1304
|
|
251
251
|
reflex/components/core/html.pyi,sha256=sEvOH8E0b8GGpFjmNo5edBZN6gPN0F8FHFrQcp7wlEQ,6636
|
|
252
252
|
reflex/components/core/layout/__init__.py,sha256=znldZaj_NGt8qCZDG70GMwjMTskcvCf_2N_EjCAHwdc,30
|
|
253
253
|
reflex/components/core/match.py,sha256=Mbkl0FWbf0Y2CsWzExgLFwR25OeH0kKk7Y-ZnqMt3-0,9507
|
|
254
254
|
reflex/components/core/responsive.py,sha256=ACZdtJ4a4F8B3dm1k8h6J2_UJx0Z5LDB7XHQ2ty4wAc,1911
|
|
255
|
-
reflex/components/core/upload.py,sha256=
|
|
255
|
+
reflex/components/core/upload.py,sha256=kCT2YKzwQcGFsd9KDpvaBN3g2yRc4bho1aT8DG5J4nU,10205
|
|
256
256
|
reflex/components/core/upload.pyi,sha256=oQrEGaxccScvApKs8nGgyHg8xbLYzM4gZw39s1zKGjQ,17180
|
|
257
257
|
reflex/components/datadisplay/__init__.py,sha256=NedB3qfW3CJYPDHudiHP1-wEcpwGk78vVKk-T_eek4U,470
|
|
258
258
|
reflex/components/datadisplay/__init__.pyi,sha256=oFr43Hj2QVaF12U9JY0Ki3ulmnfW9hlX2zfaIfO5CIs,690
|
|
259
|
-
reflex/components/datadisplay/code.py,sha256=
|
|
259
|
+
reflex/components/datadisplay/code.py,sha256=cnBk7pneSmmE6-2_nOIKo3HsynTHWzPwJVYbpKDoqhY,11469
|
|
260
260
|
reflex/components/datadisplay/code.pyi,sha256=jJqpMAiMvhZvqwuXvgLWWsZCExzzQIt4vNBy3PrFjTg,31228
|
|
261
|
-
reflex/components/datadisplay/dataeditor.py,sha256=
|
|
261
|
+
reflex/components/datadisplay/dataeditor.py,sha256=kvld3iqGjHtNa_sJIfLMCthjab02HJz0YmY3vKxG4yI,12721
|
|
262
262
|
reflex/components/datadisplay/dataeditor.pyi,sha256=_tIdjsmpazGu-9rJcVFelI4TU4ZGnBhgjs9yQ_xsLa0,10596
|
|
263
263
|
reflex/components/datadisplay/logo.py,sha256=fdQ9gDxBln8MDRDN3hP4JkF6BhttnD6GhgGRaBmu0EU,2562
|
|
264
264
|
reflex/components/el/__init__.py,sha256=n4CYTU8Jb9Tj1oU3I7zaMikxn2XBc4bOX2e4blI6jac,415
|
|
@@ -273,8 +273,8 @@ reflex/components/el/elements/__init__.py,sha256=bwHkDJTSNBTVSDUaSVCSfdMOwE89V9u
|
|
|
273
273
|
reflex/components/el/elements/__init__.pyi,sha256=LDpiMJxKQBk7Xp4YLr5K3RPsutbR7sMQFYuOOYvtRrI,9836
|
|
274
274
|
reflex/components/el/elements/base.py,sha256=7o_ifyF0Hq_zRpF5-WbiXWP7cgsiXju1jllUPnrOK8w,1982
|
|
275
275
|
reflex/components/el/elements/base.pyi,sha256=_40MCqre_XjD-rRoVXCC-SgyXTBOZqHkcCA_fURwlb4,6340
|
|
276
|
-
reflex/components/el/elements/forms.py,sha256=
|
|
277
|
-
reflex/components/el/elements/forms.pyi,sha256=
|
|
276
|
+
reflex/components/el/elements/forms.py,sha256=pYx68uX4S129GlDaegD6XxB7uE-uTAfuPsbF8wOc82Q,20866
|
|
277
|
+
reflex/components/el/elements/forms.pyi,sha256=yuroa3nPv0AJ-zEw3V-S5cBKkbOK6oUISDIzQWZW6uM,99925
|
|
278
278
|
reflex/components/el/elements/inline.py,sha256=OfQaGs6f0-9ycjZGbC8izJrHaGcTSVloF83AaJ9DKow,4084
|
|
279
279
|
reflex/components/el/elements/inline.pyi,sha256=NbiEfpZNVjQfhfidbT5O6V-XbxlrtnQCp3FWHSM3-b4,165080
|
|
280
280
|
reflex/components/el/elements/media.py,sha256=Jmy_HKJmTqeK43p25GJ0BTPBPFU-IPWmHLJlzZSlcrY,8767
|
|
@@ -299,8 +299,8 @@ reflex/components/lucide/__init__.py,sha256=EggTK2MuQKQeOBLKW-mF0VaDK9zdWBImu1HO
|
|
|
299
299
|
reflex/components/lucide/icon.py,sha256=L-Nc9AGk0neNlZqe_RofhTgOrSfmmhKO1ZTuMsgNdsU,34077
|
|
300
300
|
reflex/components/lucide/icon.pyi,sha256=1IxHAIgJG0dG49aHmEptBcJiOb9_diiyt6q1nUcKrD0,37918
|
|
301
301
|
reflex/components/markdown/__init__.py,sha256=Dfl1At5uYoY7H4ufZU_RY2KOGQDLtj75dsZ2BTqqAns,87
|
|
302
|
-
reflex/components/markdown/markdown.py,sha256=
|
|
303
|
-
reflex/components/markdown/markdown.pyi,sha256=
|
|
302
|
+
reflex/components/markdown/markdown.py,sha256=wSRRAP42ZaqpwqLvm63JRFx68kUgVAQ3TfLjvNpZwnA,11128
|
|
303
|
+
reflex/components/markdown/markdown.pyi,sha256=P5g_H6QtlvbKuZgxkpu6t8hah_96RvSYxGOE03Begx4,5288
|
|
304
304
|
reflex/components/media/__init__.py,sha256=TsrfSzpXcRImityfegI2N9-vfj1a47ONUS-vyCUCEds,44
|
|
305
305
|
reflex/components/media/icon.py,sha256=1N268zLI9opst8EQkF5gPA-UN0aMprguUJgSbdFdo5g,102
|
|
306
306
|
reflex/components/moment/__init__.py,sha256=jGnZgRBivYJQPIcFgtLaXFteCeIG3gGH5ACXkjEgmsI,92
|
|
@@ -316,14 +316,14 @@ reflex/components/next/link.pyi,sha256=Ct36W1hDaaslIkM_enRXDoLO7KwJSbzaFLGyBdPQi
|
|
|
316
316
|
reflex/components/next/video.py,sha256=2f81Ftb-6sikQb1xvExZqqQe0tcVjUY80ldh-GJ_uZw,730
|
|
317
317
|
reflex/components/next/video.pyi,sha256=exp6Gg-YXJBspVcjQn6KhY4nWgopnDzt5cVII-Fk2Pw,3429
|
|
318
318
|
reflex/components/plotly/__init__.py,sha256=OX-Ly11fIg0uRTQHfqNVKV4M9xqMqLOqXzZIfKNYE0w,77
|
|
319
|
-
reflex/components/plotly/plotly.py,sha256=
|
|
319
|
+
reflex/components/plotly/plotly.py,sha256=1UgfSqAp3XR5kStIcHWIF8ZR-vw7qmHS1uPlmFkInTw,9073
|
|
320
320
|
reflex/components/plotly/plotly.pyi,sha256=NnNjm69ig4NJKTdUZxr9Z3SsbA2wIzmsy-NKR7ai6Jk,6742
|
|
321
321
|
reflex/components/props.py,sha256=0zyzw4dmAAPh_-mbr0_jGSRDQFKUM9vkz5MXA81nZX0,906
|
|
322
322
|
reflex/components/radix/__init__.py,sha256=oGg_AE9vkAeGBJdQTth7tnbG_BtnXfQf402GnUp9LCY,473
|
|
323
323
|
reflex/components/radix/__init__.pyi,sha256=NYoGUYzuIliK97-txDmDGaYXqKYU-bjbT2nu1jHhksE,4038
|
|
324
324
|
reflex/components/radix/primitives/__init__.py,sha256=awInjOiMrcrWgQU_jqfg9LCJ_lvDzD-JKy1sKgXH5QQ,442
|
|
325
325
|
reflex/components/radix/primitives/__init__.pyi,sha256=wcnPicjWQgJkuyXbk6JPaiUyb-lnYfreNqyXCeDJdb4,482
|
|
326
|
-
reflex/components/radix/primitives/accordion.py,sha256=
|
|
326
|
+
reflex/components/radix/primitives/accordion.py,sha256=fakIeCVgIy6zUlyM_v2tABxv49o8SEjpDb-BNuZ6RGs,15822
|
|
327
327
|
reflex/components/radix/primitives/accordion.pyi,sha256=BXQRJy7SlivFm_lwFO4XRSA9-yve_8k4EmGHQFUpqWk,38019
|
|
328
328
|
reflex/components/radix/primitives/base.py,sha256=s3OX4V2pNl6AQ3H9rz-pkE-2TNuNrqj0Mn2mOItF0eM,869
|
|
329
329
|
reflex/components/radix/primitives/base.pyi,sha256=_SqXWZfCB80_VHW-jO33WhoRunUpiUcUIxziG9Fb2fw,6478
|
|
@@ -337,9 +337,9 @@ reflex/components/radix/primitives/slider.py,sha256=whEo2n09mRqRJgq7JGRzrfMjvxHO
|
|
|
337
337
|
reflex/components/radix/primitives/slider.pyi,sha256=m-BYgslIMcTkoBYdeDysbpC5XTf9WjX-TylOZWkXNNk,16882
|
|
338
338
|
reflex/components/radix/themes/__init__.py,sha256=9HxYz_pwU9LHFJqDrDHSCSxuE-hsTaSE8t7IJoA-m20,491
|
|
339
339
|
reflex/components/radix/themes/__init__.pyi,sha256=AxRMKWpwoqrTX3c6_4UoA-c83UBMXlTUT5VunX09Vr0,514
|
|
340
|
-
reflex/components/radix/themes/base.py,sha256=
|
|
340
|
+
reflex/components/radix/themes/base.py,sha256=1uid9ezp144UVowM-ss0O6f2mUsWtYTYNOzmqBIXV48,8743
|
|
341
341
|
reflex/components/radix/themes/base.pyi,sha256=_rtDedzTvV42SNEVHI_k1fyct8YT7H2GnXCGFnyYhjI,27182
|
|
342
|
-
reflex/components/radix/themes/color_mode.py,sha256=
|
|
342
|
+
reflex/components/radix/themes/color_mode.py,sha256=qIiMw5xWssgljqMvJbJhTDTPKoGEC4a5TphBTd84fJk,5584
|
|
343
343
|
reflex/components/radix/themes/color_mode.pyi,sha256=YZhgqFy7Rg5mHOzavIqV0tPtLeVz4eUONe10n5Adt98,22164
|
|
344
344
|
reflex/components/radix/themes/components/__init__.py,sha256=AyKD27f07gNt0LUivdnkiztjTKERqWKf5Rvsem3oARQ,422
|
|
345
345
|
reflex/components/radix/themes/components/__init__.pyi,sha256=PR1-XcaPrifdZzUhSA-dti1IE0tTx8fH1NjByweHr5o,1991
|
|
@@ -357,7 +357,7 @@ reflex/components/radix/themes/components/callout.py,sha256=J8Vttu37aHDxuKWyWwSo
|
|
|
357
357
|
reflex/components/radix/themes/components/callout.pyi,sha256=58FzM0pwOLuMtlD8UqmFO4wNq2wNqgxvbaQZCtommCw,38748
|
|
358
358
|
reflex/components/radix/themes/components/card.py,sha256=5DXE1gnvJDGqtFrKO8WB_FMz9e6_5HmKr2HCLsoYZAE,685
|
|
359
359
|
reflex/components/radix/themes/components/card.pyi,sha256=_k-Zo1Sid5pJJ022x3mVxF-PTIK-hWmbTYyF0NZC_SU,7226
|
|
360
|
-
reflex/components/radix/themes/components/checkbox.py,sha256=
|
|
360
|
+
reflex/components/radix/themes/components/checkbox.py,sha256=6qjkZa1MRrlvBan6svZg9s8k6VsrIDtdvSoW5pdP9oY,4714
|
|
361
361
|
reflex/components/radix/themes/components/checkbox.pyi,sha256=NEEbJq4-dxh6VnWRjP0TL5wfpw9bl7UPQ2CskeRTqEI,20877
|
|
362
362
|
reflex/components/radix/themes/components/checkbox_cards.py,sha256=PWAM-f1x0z8PLGAMu70pr1t19AI2MJv23VcHIotNp60,1301
|
|
363
363
|
reflex/components/radix/themes/components/checkbox_cards.pyi,sha256=kHyK8xsT1t8n3OXiSIROn_VHxBFtJzX6PW4mdGY1OEU,9591
|
|
@@ -385,7 +385,7 @@ reflex/components/radix/themes/components/radio.py,sha256=LpqiTO5mg4XtAvhw6XHSL2
|
|
|
385
385
|
reflex/components/radix/themes/components/radio.pyi,sha256=QxJt1_yo5aU2nLuBiIMzoH5pp2XNGo4_-B_A_8-bYhI,5924
|
|
386
386
|
reflex/components/radix/themes/components/radio_cards.py,sha256=fmBfncgJ5mh5ozOZZRXGWQs-vV_gJaLzQBgkPf5kYJw,1250
|
|
387
387
|
reflex/components/radix/themes/components/radio_cards.pyi,sha256=hEkzd42LpbtIHD2JFcjsdcCnw0jJjbeZ3wPwz2UXHlI,9561
|
|
388
|
-
reflex/components/radix/themes/components/radio_group.py,sha256=
|
|
388
|
+
reflex/components/radix/themes/components/radio_group.py,sha256=J9gILGxtTsgBrJkJC7vWKaVLYbCXl-LCDDTV19HvwfU,6353
|
|
389
389
|
reflex/components/radix/themes/components/radio_group.pyi,sha256=qEdhf8eWUntn-H74k_10uaaEcAMfKXlz4Kl6G8guy7A,24106
|
|
390
390
|
reflex/components/radix/themes/components/scroll_area.py,sha256=0Oc5K7sycSH_X8HbVI2A_FS8AddoFXcwvH_YZpsjTkc,920
|
|
391
391
|
reflex/components/radix/themes/components/scroll_area.pyi,sha256=jtpiX8b4LZWZwpUi4jElgkBfwOLIDgjnOSm-W88oaXc,4427
|
|
@@ -393,7 +393,7 @@ reflex/components/radix/themes/components/segmented_control.py,sha256=ZkxEgr6xrj
|
|
|
393
393
|
reflex/components/radix/themes/components/segmented_control.pyi,sha256=M82L1yo6-DwT_eM0TX53YZhcIJ2gak3GhIlKvRLrGPw,9507
|
|
394
394
|
reflex/components/radix/themes/components/select.py,sha256=otgJdSdoE9VVv2z3PgtKJmDY_Ln6wPJlCz2ixFp9mDY,8028
|
|
395
395
|
reflex/components/radix/themes/components/select.pyi,sha256=u5bmgAuFqV1A9_avfUZ9uYxWi8y0eqqM7-H_LVKEyaw,45123
|
|
396
|
-
reflex/components/radix/themes/components/separator.py,sha256=
|
|
396
|
+
reflex/components/radix/themes/components/separator.py,sha256=nKxAQNKBNNhh0wuH8biXBYgDIEMI-Hu9v_dLpNgILhE,889
|
|
397
397
|
reflex/components/radix/themes/components/separator.pyi,sha256=Uw1Bk8px4gCdv-1gnhH_z8x2Uq68ksE9773G3uLLxDo,6078
|
|
398
398
|
reflex/components/radix/themes/components/skeleton.py,sha256=sEFtHPZ13SGbBX-soblfaQlhnhQHMBUfPAJtAdzc3WA,643
|
|
399
399
|
reflex/components/radix/themes/components/skeleton.pyi,sha256=zYcmuXH1KU5MJ47qpk-XBpdSxqQua6TJjyaBX6rWxgE,4289
|
|
@@ -421,7 +421,7 @@ reflex/components/radix/themes/layout/box.py,sha256=j-fzawX2HXdTVYPorpERvyOWGRvS
|
|
|
421
421
|
reflex/components/radix/themes/layout/box.pyi,sha256=fgElqsNrKJp1k0UypuxpXqQythExwDXSt4l9IwovEuI,6506
|
|
422
422
|
reflex/components/radix/themes/layout/center.py,sha256=iNGsfoVUrVtb-TH3sdOVpxUQHF-2GTVFVCX_KkRuQog,490
|
|
423
423
|
reflex/components/radix/themes/layout/center.pyi,sha256=RfYglzS3eIB5uaTue0YgMkAtFdUSuHSbPK0J8agZiM4,8296
|
|
424
|
-
reflex/components/radix/themes/layout/container.py,sha256=
|
|
424
|
+
reflex/components/radix/themes/layout/container.py,sha256=sjf8GSg_t7j-aircbCk4prJZfNThQYBOeKCYbbB1wD8,1483
|
|
425
425
|
reflex/components/radix/themes/layout/container.pyi,sha256=GUKH2UUVMjSPX7JOYf_EkPNSokJDHni0zdPg2iovyMM,5303
|
|
426
426
|
reflex/components/radix/themes/layout/flex.py,sha256=uVYixM-MdFjs0ubDeloKY5n5hhyWYxANoNTNFmPZXzI,1421
|
|
427
427
|
reflex/components/radix/themes/layout/flex.pyi,sha256=Ibzsak6CWcLjFlV02X8WqmuY2XYnhdUUiQUE-5tNPJM,8547
|
|
@@ -429,7 +429,7 @@ reflex/components/radix/themes/layout/grid.py,sha256=NNb1U4Dqc4b38vOaQnbfuurXNyt
|
|
|
429
429
|
reflex/components/radix/themes/layout/grid.pyi,sha256=yWZI3QkwoNewoULUzU97j94B1VdrnI7EbsyTEtximO4,8953
|
|
430
430
|
reflex/components/radix/themes/layout/list.py,sha256=dkPXWqWrLtevvaFuir7gwQ67PhDm-2bF3U7rd2BC36M,5343
|
|
431
431
|
reflex/components/radix/themes/layout/list.pyi,sha256=N52SJfxIIF2jY0mlXHooSKLt9Jip3xhIyIpvPoAuoG4,29001
|
|
432
|
-
reflex/components/radix/themes/layout/section.py,sha256=
|
|
432
|
+
reflex/components/radix/themes/layout/section.py,sha256=uE-VtIZObv6yEx73zuqrNMGkK-rpolZs1WzehaasL64,555
|
|
433
433
|
reflex/components/radix/themes/layout/section.pyi,sha256=1Oe8VSn8_Y6DcttDG4yQoJX4lQRDM1VWNJCUba_DMTU,6810
|
|
434
434
|
reflex/components/radix/themes/layout/spacer.py,sha256=tDmJ4f-eH4CtuWiQh-91-8xCmHfTttSwzcJt-SIS_Ww,473
|
|
435
435
|
reflex/components/radix/themes/layout/spacer.pyi,sha256=c349qHuzk8IuCFO33CWA1z-whL97ypVdcMe7ddRpd44,8296
|
|
@@ -459,7 +459,7 @@ reflex/components/recharts/__init__.py,sha256=K9Pvqm27I8lMZECRziBhmfiLlt_6OysP6k
|
|
|
459
459
|
reflex/components/recharts/__init__.pyi,sha256=YSC9GJJrIcaImeNUjtIf_cEo3jrMFcxiXnunxu8nObA,5113
|
|
460
460
|
reflex/components/recharts/cartesian.py,sha256=IeNjtEgVRaLLZd_P927z8VSNsB1y5sN3SRRe6E-fJms,21327
|
|
461
461
|
reflex/components/recharts/cartesian.pyi,sha256=K2PSZVsZ6kM-JNSoVWpbB_KWp83SFN1FXHwE3DI9q9s,87624
|
|
462
|
-
reflex/components/recharts/charts.py,sha256=
|
|
462
|
+
reflex/components/recharts/charts.py,sha256=awd54qMKNydeDFibWdKVDkQpnMy6Iz2lhviY4ROgzCQ,18433
|
|
463
463
|
reflex/components/recharts/charts.pyi,sha256=hGX6hNjzQ8-Vw84P9d28h8lECXXKaVaATCOjJ87rXwk,50581
|
|
464
464
|
reflex/components/recharts/general.py,sha256=w2w5-2nNA6xhq41wT4nsxJ3XHAdtVsPje-54Svq3354,5792
|
|
465
465
|
reflex/components/recharts/general.pyi,sha256=rRkOOe43Rq1G9OD3XKJZwoesg2xbvtohiAMX3wEe6cY,22954
|
|
@@ -468,8 +468,8 @@ reflex/components/recharts/polar.pyi,sha256=k33AH69aOyHGfEHaCQGA_cP2PYKnKgCs_yWa
|
|
|
468
468
|
reflex/components/recharts/recharts.py,sha256=Ap4HCCBY2Q9gdrh-PnHOvJY5ebIKCLgnQNrUWDp_bRs,2870
|
|
469
469
|
reflex/components/recharts/recharts.pyi,sha256=milPgyj87d3rOAcsruXTUP_vMJ1REBsDC6TJL0obap4,8535
|
|
470
470
|
reflex/components/sonner/__init__.py,sha256=L_mdRIy7-ccRGSz5VK6J8O-c-e-D1p9xWw29_ErrvGg,68
|
|
471
|
-
reflex/components/sonner/toast.py,sha256=
|
|
472
|
-
reflex/components/sonner/toast.pyi,sha256=
|
|
471
|
+
reflex/components/sonner/toast.py,sha256=RLD90wbeFKq-Mac-_amDyFS25orUmCLo3ywXqEt6Z1g,10420
|
|
472
|
+
reflex/components/sonner/toast.pyi,sha256=L3Pb4HxWPnms10TdHvPE3g_3HNBnMc001E_ceoYJ3Fo,8302
|
|
473
473
|
reflex/components/suneditor/__init__.py,sha256=htkPzy0O_1ro1nw8w8gFPjYhg5xywMpsUfc4Dl3OHuw,109
|
|
474
474
|
reflex/components/suneditor/editor.py,sha256=GagQzBNxptJl6xYplta77m7aKqYbdlQ9Aldlw8Rxyzc,7360
|
|
475
475
|
reflex/components/suneditor/editor.pyi,sha256=h5NklINt1L8SdPwjwIsLeh1wpdncB_KEmooiV7WdAfs,10330
|
|
@@ -477,7 +477,7 @@ reflex/components/tags/__init__.py,sha256=Pc0JU-Tv_W7KCsydXgbKmu7w2VtHNkI6Cx2hTk
|
|
|
477
477
|
reflex/components/tags/cond_tag.py,sha256=v5BO78bGQQuCy8lM45yI7nAuasxjQoRyQNdj5kakPBY,447
|
|
478
478
|
reflex/components/tags/iter_tag.py,sha256=FKPZtSR0wKyNrigEOYnGsndhXJzwNurTCEAS6Z5vff0,3927
|
|
479
479
|
reflex/components/tags/match_tag.py,sha256=pMwy46ewquPNwa1S71sDS_0Ga8YuviSrbpBU-_CWsoQ,387
|
|
480
|
-
reflex/components/tags/tag.py,sha256=
|
|
480
|
+
reflex/components/tags/tag.py,sha256=iORWH5NBQ8U1cdMfUKaAkvFiZhvs5FPR9eHKlGjmPYg,2816
|
|
481
481
|
reflex/components/tags/tagless.py,sha256=qO7Gm4V0ITDyymHkyltfz53155ZBt-W_WIPDYy93ca0,587
|
|
482
482
|
reflex/config.py,sha256=Lvgpk-ew6SevQxZ2m2ukJoWtjDfhTtWVaWImSpuq5LA,11687
|
|
483
483
|
reflex/constants/__init__.py,sha256=q67dwC2zqW9SHBSnrZ63zT7mz9pSeG1S6lP5M4L8jI8,2016
|
|
@@ -492,12 +492,12 @@ reflex/constants/route.py,sha256=fu1jp9MoIriUJ8Cu4gLeinTxkyVBbRPs8Bkt35vqYOM,214
|
|
|
492
492
|
reflex/constants/style.py,sha256=gSzu0sQEQjW81PekxJnwRs7SXQQVco-LxtVjCi0IQZc,636
|
|
493
493
|
reflex/custom_components/__init__.py,sha256=R4zsvOi4dfPmHc18KEphohXnQFBPnUCb50cMR5hSLDE,36
|
|
494
494
|
reflex/custom_components/custom_components.py,sha256=vYBhEt0ceCTaXG_zQlD8aEUxEzyGwlc7D6RKah2Pp2A,33067
|
|
495
|
-
reflex/event.py,sha256=
|
|
495
|
+
reflex/event.py,sha256=UQuVJ2aHcSpcXDO8sNKdXpvKrCOs4lnB1NMKqK2wNVo,28586
|
|
496
496
|
reflex/experimental/__init__.py,sha256=Nm7dShDLu42HowVFHufn5nPwji-39p0OP-uV83a-cC4,1364
|
|
497
497
|
reflex/experimental/assets.py,sha256=ZqgbyPda5KsvtaESO8nds-5m7DvWq8AOgTF2bOAtToo,1757
|
|
498
498
|
reflex/experimental/client_state.py,sha256=ovd3n6e-vHc-w1v3w-MVFXIWkZYAqaxnEXTFH2PcBZM,8570
|
|
499
|
-
reflex/experimental/hooks.py,sha256=
|
|
500
|
-
reflex/experimental/layout.py,sha256=
|
|
499
|
+
reflex/experimental/hooks.py,sha256=emkTJC3dmv4UJ4JK-0ZS9BQujaDLsfdYeD1roPhR5IU,2436
|
|
500
|
+
reflex/experimental/layout.py,sha256=Zx8AGqWJrSzXY1XapsorOx-jNo2kRqaWOc4QJRulQdU,7656
|
|
501
501
|
reflex/experimental/layout.pyi,sha256=GULMurblUTmC5n3F2CaW4e9bUre16zrCvLxjgD-PXnA,20186
|
|
502
502
|
reflex/experimental/misc.py,sha256=4xlHrSCZaDyyiSexNKRbSfJ_UZy6-fzIBhKDeHNt94Q,281
|
|
503
503
|
reflex/middleware/__init__.py,sha256=x7xTeDuc73Hjj43k1J63naC9x8vzFxl4sq7cCFBX7sk,111
|
|
@@ -508,7 +508,7 @@ reflex/page.py,sha256=NPT0xMownZGTiYiRtrUJnvAe_4oEvlzEJEkG-vrGhqI,2077
|
|
|
508
508
|
reflex/reflex.py,sha256=1wJX6casYE_sAc1JCo4vng9gsyAeiYsG2Yw7itk5Abs,17874
|
|
509
509
|
reflex/route.py,sha256=WZS7stKgO94nekFFYHaOqNgN3zZGpJb3YpGF4ViTHmw,4198
|
|
510
510
|
reflex/state.py,sha256=y9ueyKjNgJ8vQXS1PvRhUOItzT4rMj_q9GCy2qMOCOQ,108928
|
|
511
|
-
reflex/style.py,sha256=
|
|
511
|
+
reflex/style.py,sha256=2mUSDsnkKqvpNOEyA9zqXDoW0LyooOXiwOszDmIp95s,9620
|
|
512
512
|
reflex/testing.py,sha256=FJsQODHOjKHhhNOfupxxc2U9JbhSjLyyciQVhej6eXA,33073
|
|
513
513
|
reflex/utils/__init__.py,sha256=y-AHKiRQAhk2oAkvn7W8cRVTZVK625ff8tTwvZtO7S4,24
|
|
514
514
|
reflex/utils/build.py,sha256=9LE93QlbfTHYyQWTgGZYSXX7QGDYzuE01ttWUVw_rGQ,8573
|
|
@@ -517,7 +517,7 @@ reflex/utils/console.py,sha256=-BHtwUabv8QlhGfEHupSn68fOOmPRZpkSvcqcjNBV-k,5182
|
|
|
517
517
|
reflex/utils/exceptions.py,sha256=3dHTYMHKHBCl1PZttA9AZ4Pa813I5RlfU58JXnI8T2c,2163
|
|
518
518
|
reflex/utils/exec.py,sha256=RsRlzE8JdxTlFSTACd9XrLt9liDbvdxZrM5wkae9R4k,10961
|
|
519
519
|
reflex/utils/export.py,sha256=UJd4BYFW9_eexhLCP4C5Ri8Cq2tWAPNVspq70lPLCyo,2270
|
|
520
|
-
reflex/utils/format.py,sha256=
|
|
520
|
+
reflex/utils/format.py,sha256=MjgqB-yp0G710MPXQ01xWkmyFnhwmV7PFWJ7bHedR5A,25557
|
|
521
521
|
reflex/utils/imports.py,sha256=v_xLZiMn7UxxPu5mXln74tXi52wYKqPuZe11Ka31WuM,2309
|
|
522
522
|
reflex/utils/lazy_loader.py,sha256=iyQU_bnigzskD-fdoxkt19i6SGbrHdSOOwCgB2FJWjc,1281
|
|
523
523
|
reflex/utils/path_ops.py,sha256=Vy6fU_bXvOcCvbXdTSmeLwy_C4h9seYU-3yIrVdZEZQ,4737
|
|
@@ -528,10 +528,10 @@ reflex/utils/serializers.py,sha256=YrGNgfZNHbxuc4Kp5ph61WPu-QF0r6IR6KuVYluxcoY,1
|
|
|
528
528
|
reflex/utils/telemetry.py,sha256=t4cvQmoAxTKAWF53vGH6ZEX5QYrK_KEcarmvMy-4_E4,5568
|
|
529
529
|
reflex/utils/types.py,sha256=VhLin6M0J7g3HdXw-Vf8ugA1USWDlHRKaDLaOCOkwHY,15255
|
|
530
530
|
reflex/utils/watch.py,sha256=HzGrHQIZ_62Di0BO46kd2AZktNA3A6nFIBuf8c6ip30,2609
|
|
531
|
-
reflex/vars.py,sha256=
|
|
531
|
+
reflex/vars.py,sha256=78zGeR-Dt4Q9bVmXJabx0O3N-bfSBx-TpZ9V_LymHt0,74404
|
|
532
532
|
reflex/vars.pyi,sha256=wz0EfaIlQkLlpd35gM0BpL6TxWzBl-9nj8N_3FP1nh8,6332
|
|
533
|
-
reflex-0.5.
|
|
534
|
-
reflex-0.5.
|
|
535
|
-
reflex-0.5.
|
|
536
|
-
reflex-0.5.
|
|
537
|
-
reflex-0.5.
|
|
533
|
+
reflex-0.5.4a2.dist-info/LICENSE,sha256=dw3zLrp9f5ObD7kqS32vWfhcImfO52PMmRqvtxq_YEE,11358
|
|
534
|
+
reflex-0.5.4a2.dist-info/METADATA,sha256=I1TN1y8EhnafWw5Ul-gCz2Q17GYhWiI4G0dqyXnktaE,12120
|
|
535
|
+
reflex-0.5.4a2.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
|
536
|
+
reflex-0.5.4a2.dist-info/entry_points.txt,sha256=H1Z5Yat_xJfy0dRT1Frk2PkO_p41Xy7fCKlj4FcdL9o,44
|
|
537
|
+
reflex-0.5.4a2.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|