reflex 0.5.4a1__py3-none-any.whl → 0.5.4a3__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.

Files changed (42) hide show
  1. reflex/components/chakra/base.py +3 -1
  2. reflex/components/chakra/forms/checkbox.py +1 -1
  3. reflex/components/chakra/forms/pininput.py +1 -1
  4. reflex/components/chakra/forms/rangeslider.py +1 -1
  5. reflex/components/chakra/navigation/link.py +3 -1
  6. reflex/components/component.py +24 -9
  7. reflex/components/core/banner.py +2 -1
  8. reflex/components/core/client_side_routing.py +1 -1
  9. reflex/components/core/debounce.py +3 -1
  10. reflex/components/core/foreach.py +1 -1
  11. reflex/components/core/upload.py +1 -0
  12. reflex/components/datadisplay/code.py +4 -1
  13. reflex/components/datadisplay/dataeditor.py +4 -6
  14. reflex/components/el/elements/forms.py +7 -3
  15. reflex/components/el/elements/forms.pyi +1 -1
  16. reflex/components/markdown/markdown.py +16 -10
  17. reflex/components/markdown/markdown.pyi +12 -8
  18. reflex/components/plotly/plotly.py +7 -3
  19. reflex/components/radix/primitives/accordion.py +1 -1
  20. reflex/components/radix/themes/base.py +1 -0
  21. reflex/components/radix/themes/color_mode.py +1 -1
  22. reflex/components/radix/themes/components/checkbox.py +3 -1
  23. reflex/components/radix/themes/components/radio_group.py +6 -4
  24. reflex/components/radix/themes/components/separator.py +1 -1
  25. reflex/components/radix/themes/layout/container.py +1 -1
  26. reflex/components/radix/themes/layout/section.py +1 -1
  27. reflex/components/recharts/charts.py +1 -1
  28. reflex/components/sonner/toast.py +7 -3
  29. reflex/components/sonner/toast.pyi +1 -1
  30. reflex/components/tags/tag.py +2 -1
  31. reflex/event.py +12 -9
  32. reflex/experimental/hooks.py +8 -2
  33. reflex/experimental/layout.py +9 -2
  34. reflex/style.py +2 -2
  35. reflex/utils/compat.py +5 -0
  36. reflex/utils/format.py +4 -1
  37. reflex/vars.py +18 -10
  38. {reflex-0.5.4a1.dist-info → reflex-0.5.4a3.dist-info}/METADATA +1 -1
  39. {reflex-0.5.4a1.dist-info → reflex-0.5.4a3.dist-info}/RECORD +42 -42
  40. {reflex-0.5.4a1.dist-info → reflex-0.5.4a3.dist-info}/LICENSE +0 -0
  41. {reflex-0.5.4a1.dist-info → reflex-0.5.4a3.dist-info}/WHEEL +0 -0
  42. {reflex-0.5.4a1.dist-info → reflex-0.5.4a3.dist-info}/entry_points.txt +0 -0
@@ -65,7 +65,9 @@ class ChakraProvider(ChakraComponent):
65
65
  A new ChakraProvider component.
66
66
  """
67
67
  return super().create(
68
- theme=Var.create("extendTheme(theme)", _var_is_local=False),
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(value="{NextLink}", _var_is_local=False) # type: ignore
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]
@@ -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(field.default)
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(kwargs[prop])
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(value)
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 for arg in passed_type.__args__ if arg is not type(None)
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, args_spec=component_specific_triggers[key]
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(ref, _var_is_local=False)
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(comp_prop)
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)}])",
@@ -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(child_ref, _var_is_local=False)
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. "
@@ -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(Var.create_safe(f"children={str(self.code)}"))
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(data_callback, _var_is_local=False) # type: ignore
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("remarkUnwrapImages", _var_is_local=False)
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("rehypeKatex", _var_is_local=False)
38
- _REHYPE_RAW = Var.create_safe("rehypeRaw", _var_is_local=False)
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(Var.create_safe(f"children={str(children_prop)}"))
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("remarkUnwrapImages", _var_is_local=False)
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("rehypeKatex", _var_is_local=False)
37
- _REHYPE_RAW = Var.create_safe("rehypeRaw", _var_is_local=False)
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(f"{{...{figure._var_name_unwrapped}}}")
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]
@@ -233,6 +233,7 @@ class Theme(RadixThemesComponent):
233
233
  css=Var.create(
234
234
  "{{...theme.styles.global[':root'], ...theme.styles.global.body}}",
235
235
  _var_is_local=False,
236
+ _var_is_string=False,
236
237
  ),
237
238
  )
238
239
  return tag
@@ -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(cls, text: Var[str] = Var.create_safe(""), **props) -> Component:
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).to_string()._replace(_var_is_local=False) # type: ignore
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("bottom-right")
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")],
@@ -27,7 +27,7 @@ LiteralPosition = Literal[
27
27
  "bottom-center",
28
28
  "bottom-right",
29
29
  ]
30
- toast_ref = Var.create_safe("refs['__toast']")
30
+ toast_ref = Var.create_safe("refs['__toast']", _var_is_string=False)
31
31
 
32
32
  class ToastAction(Base):
33
33
  label: str
@@ -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) for name, value in kwargs["props"].items()
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(f"filesById.{upload_id}")._replace(
394
- _var_data=upload_files_context_var_data
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
- (Var.create_safe(k), Var.create_safe(v, _var_is_string=isinstance(v, str)))
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
  )
@@ -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(f"const [{', '.join(name)}] = {value}")
24
- return Var.create_safe(f"const {name} = {value}")
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
  )
@@ -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 = self.State.open if self.State else Var.create("open") # type: ignore
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 = Var.create("open"), call_script(Var.create("setOpen(!open)")) # type: ignore
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/compat.py CHANGED
@@ -21,6 +21,11 @@ def pydantic_v1_patch():
21
21
  try:
22
22
  import pydantic.v1 # type: ignore
23
23
 
24
+ if pydantic.__version__.startswith("1."):
25
+ # pydantic v1 is already installed
26
+ yield
27
+ return
28
+
24
29
  sys.modules["pydantic.fields"] = pydantic.v1.fields # type: ignore
25
30
  sys.modules["pydantic.main"] = pydantic.v1.main # type: ignore
26
31
  sys.modules["pydantic.errors"] = pydantic.v1.errors # type: ignore
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 {"kind": Var.create(value="GridCellKind.Text"), "data": cell}
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 = Var.create_safe(json.dumps(other)) if isinstance(other, str) else 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 = Var.create_safe(json.dumps(other)) if isinstance(other, str) else 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
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: reflex
3
- Version: 0.5.4a1
3
+ Version: 0.5.4a3
4
4
  Summary: Web apps in pure Python.
5
5
  Home-page: https://reflex.dev
6
6
  License: Apache-2.0
@@ -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=xoU5sz5_uu7lKad7Oo1VPuFQTiZjdI4Uujxth19wYbw,5242
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=aicuKq19yCv_johCznquBD4STvacJ-74zbZ6VVfB-mk,2764
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=xE1sr1BRIv7gLc6mpiZU7RhWz7vrDqBRTWcCCaZnfr8,6503
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=Bvao4GIOBpeEZ171Uj6n5xyvCujnDsQCyqYft5x6Ivo,4543
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=x0mdP4RHBReRtfCY2q5TGioau4zxzMtFydgXSEwdqiY,1475
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=kpxOqQnOZoL2jmR_S7CkqhQGjKuRW79PsxH0G5BMw5s,77595
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=FE7Bbx4DDRqINxQKb-20iIa-OFVCaIklXwFbc1CAlUM,8226
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=i4KT2f5mEF1IwkFC_7LMHRykJzL_kCYpwRk7TyTsmfE,1880
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=gcWv6HNMtPMdh7zxek10v77R07PPfiQJPunb_7FycEM,4860
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=H3rWEq23lLtmUwsDYL1GMDe7mbV2Vk7H0mhNN1c1fAg,4759
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=wD7M0DQn_5BnFl0gZBYXRh3Lfp6VK-xcH8AB58vmaBs,10179
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=TZwZRwBb2XwjI8I80I-7ZgsRpJxTQBKYV-VnZMdD3qA,11379
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=tLKNy1ejucCSc7HObkczkEaNiTPpT9WsUrd0gSrKQIE,12801
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=0sB1qfROW7lKo1a10l1zTdPJ7JKFwXkiLVjqdlDZBro,20632
277
- reflex/components/el/elements/forms.pyi,sha256=x2nf3MnRNhYPFS-KL5-I74G_CIB-TgvwrOPjARvzGeE,99903
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=VHj2AQFClMdsLG-Ye1iOwV3yTCwg48wSrBPxYr-GNbs,10866
303
- reflex/components/markdown/markdown.pyi,sha256=E-SG4gu4LSEprKixt9d8t2yS6e0WDHD2J2jnSdsJE7I,5100
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=sX7RrVO86uXBvvVcCoyh3rtlizw8WI_dqHkM0vomuhE,8893
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=BKNvkuAjGiKy6YU39xwW9y_G9cLe_28Mtbnh25xVjEg,15801
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=Ru_bD_CzbQ48yLbEru9HCJv7uw17Ck2kI73rohx51BU,8705
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=FenXbQGerDxrf_3gBsPc82Zb3F2AW2fSE9svYuSYFN8,5562
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=KFwGAvPXb1elNmjJZYhA2EuK4bI3CMN5TB1V-zOI7cQ,4679
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=jzKQrz-0TVn4Zyf0d95bDny0tsNNCkqnmZao1BxoRmI,6233
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=si-4AZAKvjQwo6DCiHKdND7pK13vL1eWHCTO5OpIfb0,868
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=Ut703FUztDP2cJ01OPOqzc8fQ94FAPOYAAuur6vM9II,1462
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=NsXCK5tCZJdWzaMJMNG5ZoCdC9kBUw4bbTLPWtwkGuY,534
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=fFz02LvOd8M94vIRevnxp1mLBOhrzDs1jI3OgOv8bdk,18412
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=KAP8Be4Mjz0XaeMcai06v6PcVBez7jtyAQoPgj9SMy8,10294
472
- reflex/components/sonner/toast.pyi,sha256=HqsfRdELXA5Pt2kI1cFWzk7d3YDrbEAOlAHiaLbauBs,8280
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=hT7zHJyut6SlCiQS6SZ-CaUrHgfLgm9NjNDQWo7uCEQ,2778
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=3E1LlezHO4XoWuXxkkoYEwPmMqrzqZ5_nvZCOcnLing,28385
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=B0DgfZbop5VSNEmilxeGKKXG3tzZSrOtOZueGjQL_mc,2246
500
- reflex/experimental/layout.py,sha256=KiYTiO49k8mEgLgbCNfbs8d6dgx_6AtlYgyzY7iTSMA,7494
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,16 +508,16 @@ 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=y_-HKOFC9XkleTKSzhgUjlbgfAlAngjQbPahaCku__Y,9576
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
515
- reflex/utils/compat.py,sha256=rfN5mMcNWFXT1ESLnZlR-bYG7XJKHvAScXMWo9iBsKg,1255
515
+ reflex/utils/compat.py,sha256=zNB4U_kXDUE-6_LaiTeZJyti23oWorrHv416Fc-Oezc,1390
516
516
  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=Z-COwTzZ0FyIBViQTFAyNP2IdXpqui21ueLNodlIpH8,25512
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=gSe57MFAZ2NDAEru0SPWt6JpMrh1MpYdaNh6PH9MTZY,74088
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.4a1.dist-info/LICENSE,sha256=dw3zLrp9f5ObD7kqS32vWfhcImfO52PMmRqvtxq_YEE,11358
534
- reflex-0.5.4a1.dist-info/METADATA,sha256=RPmRzqtW9covQNJwhonWhGuuF9H1CiME6s6GCTCil0s,12120
535
- reflex-0.5.4a1.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
536
- reflex-0.5.4a1.dist-info/entry_points.txt,sha256=H1Z5Yat_xJfy0dRT1Frk2PkO_p41Xy7fCKlj4FcdL9o,44
537
- reflex-0.5.4a1.dist-info/RECORD,,
533
+ reflex-0.5.4a3.dist-info/LICENSE,sha256=dw3zLrp9f5ObD7kqS32vWfhcImfO52PMmRqvtxq_YEE,11358
534
+ reflex-0.5.4a3.dist-info/METADATA,sha256=bN5HVu9QUu13fTIjU8Lqdv71CLwUXD00IPhkU6qtgUg,12120
535
+ reflex-0.5.4a3.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
536
+ reflex-0.5.4a3.dist-info/entry_points.txt,sha256=H1Z5Yat_xJfy0dRT1Frk2PkO_p41Xy7fCKlj4FcdL9o,44
537
+ reflex-0.5.4a3.dist-info/RECORD,,