reflex 0.4.2a1__py3-none-any.whl → 0.4.3a2__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 (60) hide show
  1. reflex/.templates/apps/blank/code/blank.py +1 -1
  2. reflex/.templates/apps/sidebar/README.md +3 -2
  3. reflex/.templates/apps/sidebar/assets/reflex_white.svg +8 -0
  4. reflex/.templates/apps/sidebar/code/components/sidebar.py +26 -22
  5. reflex/.templates/apps/sidebar/code/pages/dashboard.py +6 -5
  6. reflex/.templates/apps/sidebar/code/pages/settings.py +45 -6
  7. reflex/.templates/apps/sidebar/code/styles.py +15 -17
  8. reflex/.templates/apps/sidebar/code/templates/__init__.py +1 -1
  9. reflex/.templates/apps/sidebar/code/templates/template.py +54 -40
  10. reflex/.templates/jinja/custom_components/README.md.jinja2 +9 -0
  11. reflex/.templates/jinja/custom_components/__init__.py.jinja2 +1 -0
  12. reflex/.templates/jinja/custom_components/demo_app.py.jinja2 +36 -0
  13. reflex/.templates/jinja/custom_components/pyproject.toml.jinja2 +35 -0
  14. reflex/.templates/jinja/custom_components/src.py.jinja2 +57 -0
  15. reflex/.templates/jinja/web/utils/context.js.jinja2 +26 -6
  16. reflex/.templates/web/utils/state.js +206 -146
  17. reflex/app.py +21 -18
  18. reflex/compiler/compiler.py +6 -2
  19. reflex/compiler/templates.py +17 -0
  20. reflex/compiler/utils.py +2 -2
  21. reflex/components/core/__init__.py +2 -1
  22. reflex/components/core/banner.py +99 -11
  23. reflex/components/core/banner.pyi +215 -2
  24. reflex/components/el/elements/__init__.py +1 -0
  25. reflex/components/el/elements/forms.py +6 -0
  26. reflex/components/el/elements/forms.pyi +4 -0
  27. reflex/components/markdown/markdown.py +13 -25
  28. reflex/components/markdown/markdown.pyi +5 -5
  29. reflex/components/plotly/plotly.py +3 -0
  30. reflex/components/plotly/plotly.pyi +2 -0
  31. reflex/components/radix/primitives/drawer.py +3 -7
  32. reflex/components/radix/themes/components/select.py +4 -4
  33. reflex/components/radix/themes/components/text_field.pyi +4 -0
  34. reflex/constants/__init__.py +4 -0
  35. reflex/constants/colors.py +1 -0
  36. reflex/constants/compiler.py +4 -3
  37. reflex/constants/custom_components.py +30 -0
  38. reflex/custom_components/__init__.py +1 -0
  39. reflex/custom_components/custom_components.py +565 -0
  40. reflex/reflex.py +11 -2
  41. reflex/route.py +4 -0
  42. reflex/state.py +594 -124
  43. reflex/testing.py +6 -0
  44. reflex/utils/exec.py +9 -0
  45. reflex/utils/prerequisites.py +28 -2
  46. reflex/utils/telemetry.py +3 -1
  47. reflex/utils/types.py +23 -0
  48. reflex/vars.py +48 -17
  49. reflex/vars.pyi +8 -3
  50. {reflex-0.4.2a1.dist-info → reflex-0.4.3a2.dist-info}/METADATA +4 -2
  51. {reflex-0.4.2a1.dist-info → reflex-0.4.3a2.dist-info}/RECORD +55 -51
  52. {reflex-0.4.2a1.dist-info → reflex-0.4.3a2.dist-info}/WHEEL +1 -1
  53. reflex/components/base/bare.pyi +0 -84
  54. reflex/constants/base.pyi +0 -94
  55. reflex/constants/event.pyi +0 -59
  56. reflex/constants/route.pyi +0 -50
  57. reflex/constants/style.pyi +0 -20
  58. /reflex/.templates/apps/sidebar/assets/{icon.svg → reflex_black.svg} +0 -0
  59. {reflex-0.4.2a1.dist-info → reflex-0.4.3a2.dist-info}/LICENSE +0 -0
  60. {reflex-0.4.2a1.dist-info → reflex-0.4.3a2.dist-info}/entry_points.txt +0 -0
reflex/testing.py CHANGED
@@ -70,6 +70,10 @@ else:
70
70
  FRONTEND_POPEN_ARGS["start_new_session"] = True
71
71
 
72
72
 
73
+ # Save a copy of internal substates to reset after each test.
74
+ INTERNAL_STATES = State.class_subclasses.copy()
75
+
76
+
73
77
  # borrowed from py3.11
74
78
  class chdir(contextlib.AbstractContextManager):
75
79
  """Non thread-safe context manager to change the current working directory."""
@@ -220,6 +224,8 @@ class AppHarness:
220
224
  reflex.config.get_config(reload=True)
221
225
  # reset rx.State subclasses
222
226
  State.class_subclasses.clear()
227
+ State.class_subclasses.update(INTERNAL_STATES)
228
+ State._always_dirty_substates = set()
223
229
  State.get_class_substate.cache_clear()
224
230
  # Ensure the AppHarness test does not skip State assignment due to running via pytest
225
231
  os.environ.pop(reflex.constants.PYTEST_CURRENT_TEST, None)
reflex/utils/exec.py CHANGED
@@ -285,3 +285,12 @@ def output_system_info():
285
285
  console.debug(f"Using package executer at: {prerequisites.get_package_manager()}") # type: ignore
286
286
  if system != "Windows":
287
287
  console.debug(f"Unzip path: {path_ops.which('unzip')}")
288
+
289
+
290
+ def is_testing_env() -> bool:
291
+ """Whether the app is running in a testing environment.
292
+
293
+ Returns:
294
+ True if the app is running in under pytest.
295
+ """
296
+ return constants.PYTEST_CURRENT_TEST in os.environ
@@ -14,6 +14,7 @@ import stat
14
14
  import sys
15
15
  import tempfile
16
16
  import zipfile
17
+ from datetime import datetime
17
18
  from fileinput import FileInput
18
19
  from pathlib import Path
19
20
  from types import ModuleType
@@ -46,7 +47,12 @@ def check_latest_package_version(package_name: str):
46
47
  url = f"https://pypi.org/pypi/{package_name}/json"
47
48
  response = httpx.get(url)
48
49
  latest_version = response.json()["info"]["version"]
49
- if version.parse(current_version) < version.parse(latest_version):
50
+ if (
51
+ version.parse(current_version) < version.parse(latest_version)
52
+ and not get_or_set_last_reflex_version_check_datetime()
53
+ ):
54
+ # only show a warning when the host version is outdated and
55
+ # the last_version_check_datetime is not set in reflex.json
50
56
  console.warn(
51
57
  f"Your version ({current_version}) of {package_name} is out of date. Upgrade to {latest_version} with 'pip install {package_name} --upgrade'"
52
58
  )
@@ -54,6 +60,26 @@ def check_latest_package_version(package_name: str):
54
60
  pass
55
61
 
56
62
 
63
+ def get_or_set_last_reflex_version_check_datetime():
64
+ """Get the last time a check was made for the latest reflex version.
65
+ This is typically useful for cases where the host reflex version is
66
+ less than that on Pypi.
67
+
68
+ Returns:
69
+ The last version check datetime.
70
+ """
71
+ if not os.path.exists(constants.Reflex.JSON):
72
+ return None
73
+ # Open and read the file
74
+ with open(constants.Reflex.JSON, "r") as file:
75
+ data: dict = json.load(file)
76
+ last_version_check_datetime = data.get("last_version_check_datetime")
77
+ if not last_version_check_datetime:
78
+ data.update({"last_version_check_datetime": str(datetime.now())})
79
+ path_ops.update_json_file(constants.Reflex.JSON, data)
80
+ return last_version_check_datetime
81
+
82
+
57
83
  def check_node_version() -> bool:
58
84
  """Check the version of Node.js.
59
85
 
@@ -1010,7 +1036,7 @@ def show_rx_chakra_migration_instructions():
1010
1036
  )
1011
1037
  console.log("")
1012
1038
  console.log(
1013
- "For more details, please see https://reflex.dev/blog/2024-02-16-reflex-v0.4.0"
1039
+ "For more details, please see https://reflex.dev/blog/2024-02-16-reflex-v0.4.0/"
1014
1040
  )
1015
1041
 
1016
1042
 
reflex/utils/telemetry.py CHANGED
@@ -12,6 +12,8 @@ import psutil
12
12
  from reflex import constants
13
13
  from reflex.utils.prerequisites import ensure_reflex_installation_id
14
14
 
15
+ POSTHOG_API_URL: str = "https://app.posthog.com/capture/"
16
+
15
17
 
16
18
  def get_os() -> str:
17
19
  """Get the operating system.
@@ -102,7 +104,7 @@ def send(event: str, telemetry_enabled: bool | None = None) -> bool:
102
104
  },
103
105
  "timestamp": datetime.utcnow().isoformat(),
104
106
  }
105
- httpx.post("https://app.posthog.com/capture/", json=post_hog)
107
+ httpx.post(POSTHOG_API_URL, json=post_hog)
106
108
  return True
107
109
  except Exception:
108
110
  return False
reflex/utils/types.py CHANGED
@@ -43,6 +43,29 @@ StateIterVar = Union[list, set, tuple]
43
43
  ArgsSpec = Callable
44
44
 
45
45
 
46
+ class Unset:
47
+ """A class to represent an unset value.
48
+
49
+ This is used to differentiate between a value that is not set and a value that is set to None.
50
+ """
51
+
52
+ def __repr__(self) -> str:
53
+ """Return the string representation of the class.
54
+
55
+ Returns:
56
+ The string representation of the class.
57
+ """
58
+ return "Unset"
59
+
60
+ def __bool__(self) -> bool:
61
+ """Return False when the class is used in a boolean context.
62
+
63
+ Returns:
64
+ False
65
+ """
66
+ return False
67
+
68
+
46
69
  def is_generic_alias(cls: GenericType) -> bool:
47
70
  """Check whether the class is a generic alias.
48
71
 
reflex/vars.py CHANGED
@@ -4,6 +4,7 @@ from __future__ import annotations
4
4
  import contextlib
5
5
  import dataclasses
6
6
  import dis
7
+ import functools
7
8
  import inspect
8
9
  import json
9
10
  import random
@@ -1802,24 +1803,26 @@ class ComputedVar(Var, property):
1802
1803
  # Whether to track dependencies and cache computed values
1803
1804
  _cache: bool = dataclasses.field(default=False)
1804
1805
 
1806
+ _initial_value: Any | types.Unset = dataclasses.field(default_factory=types.Unset)
1807
+
1805
1808
  def __init__(
1806
1809
  self,
1807
1810
  fget: Callable[[BaseState], Any],
1808
- fset: Callable[[BaseState, Any], None] | None = None,
1809
- fdel: Callable[[BaseState], Any] | None = None,
1810
- doc: str | None = None,
1811
+ initial_value: Any | types.Unset = types.Unset(),
1812
+ cache: bool = False,
1811
1813
  **kwargs,
1812
1814
  ):
1813
1815
  """Initialize a ComputedVar.
1814
1816
 
1815
1817
  Args:
1816
1818
  fget: The getter function.
1817
- fset: The setter function.
1818
- fdel: The deleter function.
1819
- doc: The docstring.
1819
+ initial_value: The initial value of the computed var.
1820
+ cache: Whether to cache the computed value.
1820
1821
  **kwargs: additional attributes to set on the instance
1821
1822
  """
1822
- property.__init__(self, fget, fset, fdel, doc)
1823
+ self._initial_value = initial_value
1824
+ self._cache = cache
1825
+ property.__init__(self, fget)
1823
1826
  kwargs["_var_name"] = kwargs.pop("_var_name", fget.__name__)
1824
1827
  kwargs["_var_type"] = kwargs.pop("_var_type", self._determine_var_type())
1825
1828
  BaseVar.__init__(self, **kwargs) # type: ignore
@@ -1872,6 +1875,10 @@ class ComputedVar(Var, property):
1872
1875
 
1873
1876
  Returns:
1874
1877
  A set of variable names accessed by the given obj.
1878
+
1879
+ Raises:
1880
+ ValueError: if the function references the get_state, parent_state, or substates attributes
1881
+ (cannot track deps in a related state, only implicitly via parent state).
1875
1882
  """
1876
1883
  d = set()
1877
1884
  if obj is None:
@@ -1895,6 +1902,8 @@ class ComputedVar(Var, property):
1895
1902
  if self_name is None:
1896
1903
  # cannot reference attributes on self if method takes no args
1897
1904
  return set()
1905
+
1906
+ invalid_names = ["get_state", "parent_state", "substates", "get_substate"]
1898
1907
  self_is_top_of_stack = False
1899
1908
  for instruction in dis.get_instructions(obj):
1900
1909
  if (
@@ -1913,6 +1922,10 @@ class ComputedVar(Var, property):
1913
1922
  ref_obj = getattr(objclass, instruction.argval)
1914
1923
  except Exception:
1915
1924
  ref_obj = None
1925
+ if instruction.argval in invalid_names:
1926
+ raise ValueError(
1927
+ f"Cached var {self._var_full_name} cannot access arbitrary state via `{instruction.argval}`."
1928
+ )
1916
1929
  if callable(ref_obj):
1917
1930
  # recurse into callable attributes
1918
1931
  d.update(
@@ -1960,21 +1973,39 @@ class ComputedVar(Var, property):
1960
1973
  return Any
1961
1974
 
1962
1975
 
1963
- def cached_var(fget: Callable[[Any], Any]) -> ComputedVar:
1964
- """A field with computed getter that tracks other state dependencies.
1965
-
1966
- The cached_var will only be recalculated when other state vars that it
1967
- depends on are modified.
1976
+ def computed_var(
1977
+ fget: Callable[[BaseState], Any] | None = None,
1978
+ initial_value: Any | None = None,
1979
+ cache: bool = False,
1980
+ **kwargs,
1981
+ ) -> ComputedVar | Callable[[Callable[[BaseState], Any]], ComputedVar]:
1982
+ """A ComputedVar decorator with or without kwargs.
1968
1983
 
1969
1984
  Args:
1970
- fget: the function that calculates the variable value.
1985
+ fget: The getter function.
1986
+ initial_value: The initial value of the computed var.
1987
+ cache: Whether to cache the computed value.
1988
+ **kwargs: additional attributes to set on the instance
1971
1989
 
1972
1990
  Returns:
1973
- ComputedVar that is recomputed when dependencies change.
1991
+ A ComputedVar instance.
1974
1992
  """
1975
- cvar = ComputedVar(fget=fget)
1976
- cvar._cache = True
1977
- return cvar
1993
+ if fget is not None:
1994
+ return ComputedVar(fget=fget, cache=cache)
1995
+
1996
+ def wrapper(fget):
1997
+ return ComputedVar(
1998
+ fget=fget,
1999
+ initial_value=initial_value,
2000
+ cache=cache,
2001
+ **kwargs,
2002
+ )
2003
+
2004
+ return wrapper
2005
+
2006
+
2007
+ # Partial function of computed_var with cache=True
2008
+ cached_var = functools.partial(computed_var, cache=True)
1978
2009
 
1979
2010
 
1980
2011
  class CallableVar(BaseVar):
reflex/vars.pyi CHANGED
@@ -144,14 +144,19 @@ class ComputedVar(Var):
144
144
  def __init__(
145
145
  self,
146
146
  fget: Callable[[BaseState], Any],
147
- fset: Callable[[BaseState, Any], None] | None = None,
148
- fdel: Callable[[BaseState], Any] | None = None,
149
- doc: str | None = None,
150
147
  **kwargs,
151
148
  ) -> None: ...
152
149
  @overload
153
150
  def __init__(self, func) -> None: ...
154
151
 
152
+ @overload
153
+ def computed_var(
154
+ fget: Callable[[BaseState], Any] | None = None,
155
+ initial_value: Any | None = None,
156
+ **kwargs,
157
+ ) -> Callable[[Callable[[Any], Any]], ComputedVar]: ...
158
+ @overload
159
+ def computed_var(fget: Callable[[Any], Any]) -> ComputedVar: ...
155
160
  def cached_var(fget: Callable[[Any], Any]) -> ComputedVar: ...
156
161
 
157
162
  class CallableVar(BaseVar):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: reflex
3
- Version: 0.4.2a1
3
+ Version: 0.4.3a2
4
4
  Summary: Web apps in pure Python.
5
5
  Home-page: https://reflex.dev
6
6
  License: Apache-2.0
@@ -15,8 +15,8 @@ Classifier: Programming Language :: Python :: 3.8
15
15
  Classifier: Programming Language :: Python :: 3.9
16
16
  Classifier: Programming Language :: Python :: 3.10
17
17
  Classifier: Programming Language :: Python :: 3.11
18
- Classifier: Programming Language :: Python :: 3.12
19
18
  Requires-Dist: alembic (>=1.11.1,<2.0.0)
19
+ Requires-Dist: build (>=1.0.3,<2.0.0)
20
20
  Requires-Dist: charset-normalizer (>=3.3.2,<4.0.0)
21
21
  Requires-Dist: cloudpickle (>=2.2.1,<3.0.0)
22
22
  Requires-Dist: distro (>=1.8.0,<2.0.0) ; sys_platform == "linux"
@@ -35,6 +35,7 @@ Requires-Dist: python-socketio (>=5.7.0,<6.0.0)
35
35
  Requires-Dist: redis (>=4.3.5,<5.0.0)
36
36
  Requires-Dist: reflex-hosting-cli (>=0.1.2)
37
37
  Requires-Dist: rich (>=13.0.0,<14.0.0)
38
+ Requires-Dist: setuptools (>=69.1.1,<70.0.0)
38
39
  Requires-Dist: sqlmodel (>=0.0.14,<0.0.15)
39
40
  Requires-Dist: starlette-admin (>=0.9.0,<0.10.0)
40
41
  Requires-Dist: typer (>=0.4.2,<1)
@@ -42,6 +43,7 @@ Requires-Dist: uvicorn (>=0.20.0,<0.21.0) ; python_version < "3.12"
42
43
  Requires-Dist: uvicorn (>=0.24.0,<0.25.0) ; python_version >= "3.12"
43
44
  Requires-Dist: watchdog (>=2.3.1,<3.0.0)
44
45
  Requires-Dist: watchfiles (>=0.19.0,<0.20.0)
46
+ Requires-Dist: wheel (>=0.42.0,<0.43.0)
45
47
  Requires-Dist: wrapt (>=1.11.0,<2.0.0) ; python_version < "3.11"
46
48
  Requires-Dist: wrapt (>=1.14.0,<2.0.0) ; python_version >= "3.11"
47
49
  Project-URL: Documentation, https://reflex.dev/docs/getting-started/introduction
@@ -1,6 +1,6 @@
1
1
  reflex/.templates/apps/blank/assets/favicon.ico,sha256=baxxgDAQ2V4-G5Q4S2yK5uUJTUGkv-AOWBQ0xd6myUo,4286
2
2
  reflex/.templates/apps/blank/code/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
- reflex/.templates/apps/blank/code/blank.py,sha256=owbX1Qt-h5sfutSSEVK6p5mc_KL2WXH3FJ_ZyJNaPBs,837
3
+ reflex/.templates/apps/blank/code/blank.py,sha256=Mi1_qyQOaEp30Ta07Y0l6idpIbRvuj8uD_Wbl0y2bLs,838
4
4
  reflex/.templates/apps/demo/.gitignore,sha256=E0XWl5WEAeQrw8_bgtaUHU1dtao3PqnkQw2CFg1_HzA,32
5
5
  reflex/.templates/apps/demo/assets/favicon.ico,sha256=baxxgDAQ2V4-G5Q4S2yK5uUJTUGkv-AOWBQ0xd6myUo,4286
6
6
  reflex/.templates/apps/demo/assets/github.svg,sha256=3iQ3eRL-89bBiXmL0joQc_c8ag_tf8jPZYe4yygGnd4,1475
@@ -29,24 +29,30 @@ reflex/.templates/apps/demo/code/webui/components/navbar.py,sha256=1T10fDy-h3rRu
29
29
  reflex/.templates/apps/demo/code/webui/components/sidebar.py,sha256=YTi33v3FMZAbPdbaA3U0AYUa1jw20aysxjyPm7H3JFY,1735
30
30
  reflex/.templates/apps/demo/code/webui/state.py,sha256=4WrimIPB0HGNLBkCgWEpE1XPO3pXQNH8nZQVPKa3FII,4001
31
31
  reflex/.templates/apps/demo/code/webui/styles.py,sha256=uRkh7p30iWWDK86UlFolT9jL2HRHEhdfaKU0tYeNS_M,2281
32
- reflex/.templates/apps/sidebar/README.md,sha256=IyYa7a_P1IfVYKXRUBAnkjdhzN-TzFLDomqGohR7rD0,2392
32
+ reflex/.templates/apps/sidebar/README.md,sha256=O4htjVuua3WBX16b0JjxT8e7Y7cqJASaOIuzM0fEvKU,2392
33
33
  reflex/.templates/apps/sidebar/assets/favicon.ico,sha256=baxxgDAQ2V4-G5Q4S2yK5uUJTUGkv-AOWBQ0xd6myUo,4286
34
34
  reflex/.templates/apps/sidebar/assets/github.svg,sha256=3iQ3eRL-89bBiXmL0joQc_c8ag_tf8jPZYe4yygGnd4,1475
35
- reflex/.templates/apps/sidebar/assets/icon.svg,sha256=3EnRAihBIXdNZIf5cuFystIyoV6encwuYmWLHlZfLIw,1899
36
35
  reflex/.templates/apps/sidebar/assets/logo.svg,sha256=f_YiqcSiX3jtK3j43YmEZK6z9f-KPCXcZN6vU71wgeQ,5403
37
36
  reflex/.templates/apps/sidebar/assets/paneleft.svg,sha256=yXj0tH-VpnQaEwriXmb9ar2HgeXcGU5W6d4buKDUkA4,807
37
+ reflex/.templates/apps/sidebar/assets/reflex_black.svg,sha256=3EnRAihBIXdNZIf5cuFystIyoV6encwuYmWLHlZfLIw,1899
38
+ reflex/.templates/apps/sidebar/assets/reflex_white.svg,sha256=ucznGXW_oNzZnoNZ1aPYWDf-rOBnspFrTIz3Lw8Vb_s,908
38
39
  reflex/.templates/apps/sidebar/code/__init__.py,sha256=kYpJ6_dYllTemD8RF6s_LH8zL10PuK4Zuogutt1oeAI,32
39
40
  reflex/.templates/apps/sidebar/code/components/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
40
- reflex/.templates/apps/sidebar/code/components/sidebar.py,sha256=RyOE5zwtWnFY9CKLaO9bDEOBuVj1J9UBOOOGTIUqRMg,3843
41
+ reflex/.templates/apps/sidebar/code/components/sidebar.py,sha256=_0N14kyj4B3dz9b7ACslh-FyksraBcJhIU9p6rwd-HE,3906
41
42
  reflex/.templates/apps/sidebar/code/pages/__init__.py,sha256=-sAdgxOrv5BNtXWFTcE2HXCXGOVxGtPabY-oyGTskks,89
42
- reflex/.templates/apps/sidebar/code/pages/dashboard.py,sha256=R0iTGeLqUTQ3mC_e3ly1XISLQoxLNSSrLCGzuXDxHSI,531
43
+ reflex/.templates/apps/sidebar/code/pages/dashboard.py,sha256=McQduLCrLER8cZ_fBRtOWtdruVUPXWrh7b3uKKAZ3eo,490
43
44
  reflex/.templates/apps/sidebar/code/pages/index.py,sha256=zLYpL9Wzh0riIgHmZKRGS7jbpVifAkyhWehOBUVVPEM,436
44
- reflex/.templates/apps/sidebar/code/pages/settings.py,sha256=Uclr2IKVIeqxdeo_RuHxPdOSElyuesKJJVZYMtB9lI8,524
45
+ reflex/.templates/apps/sidebar/code/pages/settings.py,sha256=je4wsOAqNGYkSCs1BcvAKh21ui1UN4D34eEltqZRbSk,1571
45
46
  reflex/.templates/apps/sidebar/code/sidebar.py,sha256=WXiYCt4a_stS1IQ4qZp4BLdnEmUI5rEQ5uWazUx9bzA,270
46
- reflex/.templates/apps/sidebar/code/styles.py,sha256=xj_onLyqwCablg1L-wXe2X4a1QWNI0jE523gIYdIVvo,1529
47
- reflex/.templates/apps/sidebar/code/templates/__init__.py,sha256=MhJVkjYK0TUamNuR7hGSo0YKZVCTFJkN4FgC_w-zBHw,31
48
- reflex/.templates/apps/sidebar/code/templates/template.py,sha256=uZCoQfUZd3SQCT0_LML_86wcPRYJeINFpFt_Q2Poq_c,3781
47
+ reflex/.templates/apps/sidebar/code/styles.py,sha256=zt-zTHvs_wvCww0YqkkyjT1ALcIE0NRcH_SNu9XVsbE,1570
48
+ reflex/.templates/apps/sidebar/code/templates/__init__.py,sha256=QpwPNBsNWxZbp6GBzSIjGwbQ_Dl1Zk_5ODaSxb6rZJ4,43
49
+ reflex/.templates/apps/sidebar/code/templates/template.py,sha256=HmMOkeWFC7rHzTOiTCsyx0tQWnhktgdE9EN_W7dyI7U,3904
49
50
  reflex/.templates/jinja/app/rxconfig.py.jinja2,sha256=Scfnv_vZXIPQcz8zNIa4FmjEym1U5VMMWX4lryUMi10,74
51
+ reflex/.templates/jinja/custom_components/README.md.jinja2,sha256=qA4XZDxOTc2gRIG7CO1VvVawOgThwZqU2RZvRTPhXwE,127
52
+ reflex/.templates/jinja/custom_components/__init__.py.jinja2,sha256=z5n2tvoS7iNDaM6mUGKETdpGlC0oA1_rrYURu7O_xpk,32
53
+ reflex/.templates/jinja/custom_components/demo_app.py.jinja2,sha256=kY9gpmVUuLrsU3loDTE9e6ETbFa4SDOL_p3ReIyUIL0,774
54
+ reflex/.templates/jinja/custom_components/pyproject.toml.jinja2,sha256=JlB1_ZL4ro1WgqEKewtOveSAaLTIPw7UL9WyKX-xOjk,687
55
+ reflex/.templates/jinja/custom_components/src.py.jinja2,sha256=JZyMF2PP1u2BWVJ5_qnQPK8J1ZQ_6VN7M4RxODR4sV8,2262
50
56
  reflex/.templates/jinja/web/package.json.jinja2,sha256=YU9PF8WgiQ8OPlG3oLDX31t2R0o6DFntCh698NTiDK8,548
51
57
  reflex/.templates/jinja/web/pages/_app.js.jinja2,sha256=rmyh8K-1dqEdRzj5CcYGERa6_GTErkJoQ8z77Kw_ZLk,930
52
58
  reflex/.templates/jinja/web/pages/_document.js.jinja2,sha256=E2r3MWp-gimAa6DdRs9ErQpPEyjS_yV5fdid_wdOOlA,182
@@ -59,7 +65,7 @@ reflex/.templates/jinja/web/pages/stateful_components.js.jinja2,sha256=BfHi7ckH9
59
65
  reflex/.templates/jinja/web/pages/utils.js.jinja2,sha256=xi1ryZ2dqWM4pmB4p028hxRtsdP6T3ZR5a8OG_U1IAs,3883
60
66
  reflex/.templates/jinja/web/styles/styles.css.jinja2,sha256=4-CvqGR8-nRzkuCOSp_PdqmhPEmOs_kOhskOlhLMEUg,141
61
67
  reflex/.templates/jinja/web/tailwind.config.js.jinja2,sha256=cblxOcM8DLKg9S8OgS-uxA4OfGer60GAWwBOxNXwqzo,436
62
- reflex/.templates/jinja/web/utils/context.js.jinja2,sha256=YtU9Eml3EN0LSsni5Ru4rSwMoh0d3IO1nd3mBhmYcVU,2993
68
+ reflex/.templates/jinja/web/utils/context.js.jinja2,sha256=Vl2pKWItPjYSSVvPGRZHM5Oi177ijl-RxUjxkyeMXwc,3790
63
69
  reflex/.templates/jinja/web/utils/theme.js.jinja2,sha256=cdRQR4cx0OFHUY060k1AdsPpK7BNUV--NzsC9HdH4l8,37
64
70
  reflex/.templates/web/.gitignore,sha256=3tT0CtVkCL09D_Y3Hd4myUgGcBuESeavCa0WHU5ifJ4,417
65
71
  reflex/.templates/web/components/reflex/chakra_color_mode_provider.js,sha256=4vJnV_AVrlH6FRzT4p0DF-kfHGKF3H6nXKtUEmAscKI,595
@@ -71,25 +77,24 @@ reflex/.templates/web/styles/tailwind.css,sha256=zBp60NAZ3bHTLQ7LWIugrCbOQdhiXdb
71
77
  reflex/.templates/web/utils/client_side_routing.js,sha256=iGGnZY07XMNLUT2GT_Y6OEICP7uc1FaWn9cPlQUpGgo,1254
72
78
  reflex/.templates/web/utils/helpers/dataeditor.js,sha256=anZgi8RJ_J0yqDez1Ks51fNDIQOvP3WkIm1QRDwccSk,1622
73
79
  reflex/.templates/web/utils/helpers/range.js,sha256=FevdZzCVxjF57ullfjpcUpeOXRxh5v09YnBB0jPbrS4,1152
74
- reflex/.templates/web/utils/state.js,sha256=a1ehVfbBcWKjZJxUyVCrISFi5kGPZdY9qZI2p2o66Gk,20337
80
+ reflex/.templates/web/utils/state.js,sha256=41WaaalDeIQX_wGIbyRIGvwFYhX2LZKc3eoyQdBTyFs,21260
75
81
  reflex/__init__.py,sha256=AWw9ICSuAvfwib_Hq_fKIxOwVZNHO5PQocFkD8c4xhY,5546
76
82
  reflex/__init__.pyi,sha256=A5ggRGTri9IVTPLZNePVWEU4ZMv1hF9UraSbY1sNfEc,7362
77
83
  reflex/__main__.py,sha256=6cVrGEyT3j3tEvlEVUatpaYfbB5EF3UVY-6vc_Z7-hw,108
78
84
  reflex/admin.py,sha256=-bTxFUEoHo4X9FzmcSa6KSVVPpF7wh38lBvF67GhSvQ,373
79
- reflex/app.py,sha256=82yRtal6hG7xgfUkncBTmWkaZ5lzQKF_PljFr-Erb4Q,40057
85
+ reflex/app.py,sha256=hAiF9P8Ar2djy8Mk5zCd2zeSs8HfobqvQZsaxu76PAo,40258
80
86
  reflex/app.pyi,sha256=BHzQgRhY6GyDoIQiocElm_uJwnW80AzjTCPIjG5hs8M,4729
81
87
  reflex/app_module_for_backend.py,sha256=EN6a0OR93hdAbfJditp0HrlqewZSIAAyKQrDg8FRSss,743
82
88
  reflex/base.py,sha256=EnYFVfXQgRcsz7JtBdfBkvxkf9msLEmt6OS-yGwcJQM,3869
83
89
  reflex/compiler/__init__.py,sha256=r8jqmDSFf09iV2lHlNhfc9XrTLjNxfDNwPYlxS4cmHE,27
84
- reflex/compiler/compiler.py,sha256=QRvr_VvY1wMxdQEFs2epWp-LH3HfCRjVtoUu5cxRptQ,13446
85
- reflex/compiler/templates.py,sha256=3ss7WMdpfkehqLn2-43pH4iXlFjSbEqkRF8ATiHBtsY,3596
86
- reflex/compiler/utils.py,sha256=8heDtFlPfsmthdTE-QBPZkwnOMtIxRhl33Xk27phf4s,13081
90
+ reflex/compiler/compiler.py,sha256=U0fAz4txWn65fKOvhQx_eJX_URFjtfxu4p8jjy3ZBLs,13492
91
+ reflex/compiler/templates.py,sha256=wxq3c1rd7Gvte5F5FKjAyXosAWHQ3DcdEl3HadIi0kc,4339
92
+ reflex/compiler/utils.py,sha256=CohxfIAEgYNAeT0wFzpsaBsCAvUxq2_Wun-tOW-YhEU,13145
87
93
  reflex/components/__init__.py,sha256=_HDLeN8JYJaL2vsx0O7ihzAnIJUtUL2zknAUbT9YLYg,530
88
94
  reflex/components/base/__init__.py,sha256=regtioYXwTxqWuf4Z7H51rjn2Vs1Kr1Fh_i4s-W1m0A,325
89
95
  reflex/components/base/app_wrap.py,sha256=_LPpPO8c8M6dyEsyoahJaDKk-zEK4qvR_lSnaLpqUKM,573
90
96
  reflex/components/base/app_wrap.pyi,sha256=VF3LX8d4it8rl8ECL7WB8XPOtIB6EHH3AMDe24vGEvI,2885
91
97
  reflex/components/base/bare.py,sha256=GQru8YeTZ8m7ZRGS6-ReGSIM2JRy1W10M7p73Tn4ecQ,1182
92
- reflex/components/base/bare.pyi,sha256=uDbouROHBrETfo17WBe-jDA66D0Xjx1gT0YvIegUuKU,3045
93
98
  reflex/components/base/body.py,sha256=QHOGMr98I6bUXsQKXcY0PzJdhopH6gQ8AESrDSgJV6I,151
94
99
  reflex/components/base/body.pyi,sha256=1jtmYDFxUtsVPM_Q7xaqSC765z6ct57xDKO1Wfse4ik,3272
95
100
  reflex/components/base/document.py,sha256=bSjdkrodZP6RTCSTHObgZYyOq7EAIl0iRUVIuTEJSYg,529
@@ -246,9 +251,9 @@ reflex/components/chakra/typography/span.pyi,sha256=IzFlO6mqV38IQu_JKbDBujIr5_9m
246
251
  reflex/components/chakra/typography/text.py,sha256=9YXBdK5UYqgDam3ITeRSnd8bu9ht3zydt0pkmJAECsk,472
247
252
  reflex/components/chakra/typography/text.pyi,sha256=wDhAg9ZHK-FfrKutX0LWv0-lWprJAeurvx8n-UjUNec,3662
248
253
  reflex/components/component.py,sha256=-9T171LzKdua-P-l4gMGTS_TY1MzY43o_JOel1ET0-Y,60838
249
- reflex/components/core/__init__.py,sha256=2qTD6oPGH3qG-uCHa4ix7r1FDJdfw5f6_Td6ydvkJOQ,782
250
- reflex/components/core/banner.py,sha256=62YjeKLj3KmK0jllhJKH2_4ElhUChlZ4yXjl9zW-_dE,3473
251
- reflex/components/core/banner.pyi,sha256=dm02u51xF02ZmBAaGnvWTAV1XosctHpRuflXmAY011Y,8351
254
+ reflex/components/core/__init__.py,sha256=mMSd2IZqBgGf7zkjuPeA-oIiIXu_O08fk9x15D8hBSU,844
255
+ reflex/components/core/banner.py,sha256=DlQUUVmv38I3hk417mr637mxxHiayXI97TnzcEWKUAE,6005
256
+ reflex/components/core/banner.pyi,sha256=_zpKzkLGdBCdX882YO4tbbHpr-o_U81i6jYhs2TrYiQ,17190
252
257
  reflex/components/core/client_side_routing.py,sha256=mdZsGuc1V9qvOE0TaLEnXmXo0qHuPjc_dZrSjnlZsqc,1873
253
258
  reflex/components/core/client_side_routing.pyi,sha256=pDepu2kSCPvK2Ui4GJeYFgmWwfEfaDhDgFQFMNbrPbU,6401
254
259
  reflex/components/core/colors.py,sha256=-hzVGLEq3TiqroqzMi_YzGBCPXMvkNsen3pS_NzIQNk,590
@@ -275,11 +280,11 @@ reflex/components/el/constants/react.py,sha256=f1-Vo8iWn2jSrR7vy-UwGbGRvw88UUZnb
275
280
  reflex/components/el/constants/reflex.py,sha256=SJidKWxPv0bwjPbeo57KFuEQNGyd8XUJrV-HfzX3tnE,1713
276
281
  reflex/components/el/element.py,sha256=mSbygKXtQGOrsmMrKlel76oqebi4eG6AzlBwJ2xnhhY,494
277
282
  reflex/components/el/element.pyi,sha256=7DZ1eAmSTE-OaCyORvH_gRKLi-HBaRZrmmn0u91R_hc,3279
278
- reflex/components/el/elements/__init__.py,sha256=jWqZctwIYVVKg3XJu06vO25EasGa7dTJ3L-kFuAAFEQ,3506
283
+ reflex/components/el/elements/__init__.py,sha256=WYfDTRAgm47AcIf2ePjzVHKOVEKDW1IpyQ5NG664sRA,3529
279
284
  reflex/components/el/elements/base.py,sha256=7o_ifyF0Hq_zRpF5-WbiXWP7cgsiXju1jllUPnrOK8w,1982
280
285
  reflex/components/el/elements/base.pyi,sha256=922kmIBRLi_Qcc1SMzcNIei1C5XJ18iE4FJ_PWCuGXQ,6406
281
- reflex/components/el/elements/forms.py,sha256=w75v75lQkiAhIwqKkKwwfxoBPWABtU9w7DJ-KmzK2y8,12668
282
- reflex/components/el/elements/forms.pyi,sha256=J8vD8Nqt6v2Y7BSUvZrArNqauWeSnOViNlpn35yFpaI,97917
286
+ reflex/components/el/elements/forms.py,sha256=cNE0V-to1JhIMhkM1AQedsss45bIc7XKdsUHoFE8StQ,12829
287
+ reflex/components/el/elements/forms.pyi,sha256=nVeKxY3lFZJWA71lXlZtop9RG8hImdhSMrL-XeJ4KUA,98189
283
288
  reflex/components/el/elements/inline.py,sha256=0NozHMAyJaaUCRbmjX0MqMRmRYYmPk2EOCtKAr6SIE8,3610
284
289
  reflex/components/el/elements/inline.pyi,sha256=bGSaspT-qfiQAC4MZwxhSJg-AVFawV-zEpUsiLj6Dck,166590
285
290
  reflex/components/el/elements/media.py,sha256=leBasBQ4NS4xRxTY7U3s7T8CdiFlTO6n3lc8v-7lhdM,7929
@@ -304,8 +309,8 @@ reflex/components/lucide/__init__.py,sha256=EggTK2MuQKQeOBLKW-mF0VaDK9zdWBImu1HO
304
309
  reflex/components/lucide/icon.py,sha256=T8hwKtSk4jauj21jifnFweKnPciYljwf_CUX92ZaytM,28399
305
310
  reflex/components/lucide/icon.pyi,sha256=MzvG5W5g_buaISH5zlm27-9ogIy2ft07m3_R0HOtO2I,32723
306
311
  reflex/components/markdown/__init__.py,sha256=Dfl1At5uYoY7H4ufZU_RY2KOGQDLtj75dsZ2BTqqAns,87
307
- reflex/components/markdown/markdown.py,sha256=z22DErle8LC5TTuAY_h0DQay8bl0V7viUl0cGiD8gYc,11123
308
- reflex/components/markdown/markdown.pyi,sha256=hVNo52M2QN7vzDtJtxa-i1VvmSCW9DwHS6Ugxo9bII8,5252
312
+ reflex/components/markdown/markdown.py,sha256=k4F88FKS1S22TdAIe7Ysja5VamHwQukrnO7OHwtp1pI,11018
313
+ reflex/components/markdown/markdown.pyi,sha256=mQwuXfDHCsLUVsMBG_GOzv_JAsQS_4o9oQU8ALqB9yc,5276
309
314
  reflex/components/media/__init__.py,sha256=TsrfSzpXcRImityfegI2N9-vfj1a47ONUS-vyCUCEds,44
310
315
  reflex/components/media/icon.py,sha256=1N268zLI9opst8EQkF5gPA-UN0aMprguUJgSbdFdo5g,102
311
316
  reflex/components/moment/__init__.py,sha256=XSYjQyEDvcSyLhS0uaoBWlLSp-whmqCkhvXh7bpotAY,79
@@ -321,15 +326,15 @@ reflex/components/next/link.pyi,sha256=tZO3HTpZnjGNHXnJhfv_D6lDOKLlH-43M0kzuAKnc
321
326
  reflex/components/next/video.py,sha256=2f81Ftb-6sikQb1xvExZqqQe0tcVjUY80ldh-GJ_uZw,730
322
327
  reflex/components/next/video.pyi,sha256=KJRYUhFWMFfN1e46hFQ8Hl-L8qHqicqpb0E6GHtI_0w,3424
323
328
  reflex/components/plotly/__init__.py,sha256=OX-Ly11fIg0uRTQHfqNVKV4M9xqMqLOqXzZIfKNYE0w,77
324
- reflex/components/plotly/plotly.py,sha256=bIXN9lsxYEbpmSvbau6GPYdLTZihEB3YgT1psTGVzXI,910
325
- reflex/components/plotly/plotly.pyi,sha256=2scs_64ZoEcGDQW7Yy_4iY2YfYXbNewpU82tllUqKvI,6900
329
+ reflex/components/plotly/plotly.py,sha256=GVExqrdSIfXngDFZATjjkomrwx97UM8F2W56rdLQFuM,964
330
+ reflex/components/plotly/plotly.pyi,sha256=wBAYdb6ARzty-nt6YRVnWvX2k9akOLxOdjOdrnb1kJo,7002
326
331
  reflex/components/radix/__init__.py,sha256=5BGBr3z1_GcgCbNXUqAlK5AR13J7fxzFn4Wj-nTDNa4,112
327
332
  reflex/components/radix/primitives/__init__.py,sha256=wkbCDG6q2MuZobhD6FeH9PgLXKZhb6cImguCV4n-aGs,214
328
333
  reflex/components/radix/primitives/accordion.py,sha256=dSqrgxXyORYSY81w0CUG1NRNpyA1qVzby7KLwBSsXG8,21408
329
334
  reflex/components/radix/primitives/accordion.pyi,sha256=8Os9PoCxzAzsnwa5FMpQLtcXl9FTqlmJTAEFYWpShEQ,26951
330
335
  reflex/components/radix/primitives/base.py,sha256=s3OX4V2pNl6AQ3H9rz-pkE-2TNuNrqj0Mn2mOItF0eM,869
331
336
  reflex/components/radix/primitives/base.pyi,sha256=qUe7AXWlGcueBIrEWuSCAzmjnkr1ja5VQf8boD__3pc,6615
332
- reflex/components/radix/primitives/drawer.py,sha256=pc71iS6tzRGhtOs5POmpToWad63Q0rCODpKg50LRpLg,8079
337
+ reflex/components/radix/primitives/drawer.py,sha256=VTICLprDqZCcuS3iVjBNu9uYPbbBgHx30z8pnC82x20,8048
333
338
  reflex/components/radix/primitives/drawer.pyi,sha256=TJfd2_Sq-N1ldEPXRXS4vJ9lqlSF_PLgJva2eKRRmRk,35827
334
339
  reflex/components/radix/primitives/form.py,sha256=kOfi5jkYzntPg6EqyoJYF6Uo0IU1v91o-Fr3T2GD4nI,9040
335
340
  reflex/components/radix/primitives/form.pyi,sha256=T3P9WOU8MuAsgOMTHDTkZSMbKq65vfvB1pzRiMjD6js,35003
@@ -385,7 +390,7 @@ reflex/components/radix/themes/components/radiogroup.pyi,sha256=4A_iObTwZH2Be9I0
385
390
  reflex/components/radix/themes/components/scroll_area.py,sha256=0Oc5K7sycSH_X8HbVI2A_FS8AddoFXcwvH_YZpsjTkc,920
386
391
  reflex/components/radix/themes/components/scroll_area.pyi,sha256=G-0BnHn0cUnP6cRYPETLaWWWU17EFjH1QVwawUEbKS0,4422
387
392
  reflex/components/radix/themes/components/scrollarea.pyi,sha256=rwOEpVI0m9gMjlSPPwOgUGc4n8tD2g5NQZ-NyvBGFWg,6513
388
- reflex/components/radix/themes/components/select.py,sha256=lz2nab8yjrvQdKphV3VyzM2qLBZGit0fmXEZKiUYg8E,7704
393
+ reflex/components/radix/themes/components/select.py,sha256=bj71JEcHVxpAKsqeL0Ih2E8hvsZ7jI_lIPRxy9ueXiw,7739
389
394
  reflex/components/radix/themes/components/select.pyi,sha256=HTjI9I_lW3NBjWdxmvWkGbB0xoIppSFYZYKM-JUHtg8,44590
390
395
  reflex/components/radix/themes/components/separator.py,sha256=si-4AZAKvjQwo6DCiHKdND7pK13vL1eWHCTO5OpIfb0,868
391
396
  reflex/components/radix/themes/components/separator.pyi,sha256=gHPRkoUJIRQXBtf6RDX7qZkxK8f1zDXddQsUT5Yg2rM,6073
@@ -400,7 +405,7 @@ reflex/components/radix/themes/components/tabs.pyi,sha256=We34dELJj-fojBJL6T2X2u
400
405
  reflex/components/radix/themes/components/text_area.py,sha256=9AhvEXcr87B1o0wmCTyIWYuzUNes_kMbXJh95Gai01o,3233
401
406
  reflex/components/radix/themes/components/text_area.pyi,sha256=LIB5egxjGQGCpClK1G4oOS_RI7AI-XS8Gy5P_sTY0Jw,11390
402
407
  reflex/components/radix/themes/components/text_field.py,sha256=LD3cQ2EnDzJ5W8G9yp5LPgCUBVONkWoy2SB2jjUFRZ0,5106
403
- reflex/components/radix/themes/components/text_field.pyi,sha256=zDJD7d_LfIZSeo4DTDhzPzbLyLZMtdW0rPY93-a7NmM,42766
408
+ reflex/components/radix/themes/components/text_field.pyi,sha256=J8yImxQlfDHV5tqHBJpuvShPuSYAotsCplQmGdVe4B8,43038
404
409
  reflex/components/radix/themes/components/textfield.pyi,sha256=SaH2-jvnGDFWFHmMW0ekWjYiVPr-qROZYGGDAxbHBxs,43365
405
410
  reflex/components/radix/themes/components/tooltip.py,sha256=gSeURvwI8ITUoTmtWVFFMIeUMEL6B3NrvX0hw3Y7lWg,4465
406
411
  reflex/components/radix/themes/components/tooltip.pyi,sha256=rydb5OKA49-ivbJmy1bMLYv9-kyNzDNsXOzGvjueO5I,8087
@@ -470,19 +475,18 @@ reflex/components/tags/tag.py,sha256=hT7zHJyut6SlCiQS6SZ-CaUrHgfLgm9NjNDQWo7uCEQ
470
475
  reflex/components/tags/tagless.py,sha256=qO7Gm4V0ITDyymHkyltfz53155ZBt-W_WIPDYy93ca0,587
471
476
  reflex/config.py,sha256=UhGqpDCvCZyJpu9olprOjGknex258Lil-CuMaGqasS4,10606
472
477
  reflex/config.pyi,sha256=Gf0Ptm9h0xEPsv0FAfwsSq6fs5ycjiR0WxbYimt9TKY,3278
473
- reflex/constants/__init__.py,sha256=JtTvpQ_wdxjpmh-ucz-KnOrlxMjEnCrmUvMmiS5IBfA,1935
478
+ reflex/constants/__init__.py,sha256=Z5AiYnUScKbgAOmKNa7bm37-_cruOj-j-LiFWkP664s,2014
474
479
  reflex/constants/base.py,sha256=a1ynDH7U38HZtZQ_Gx0mN3MsSGi-suPkRmTnFG4ZwB0,5728
475
- reflex/constants/base.pyi,sha256=iOYadSuo2AfgrouHTjTU65BCjXQKiVqiBjoqbstRMq8,3096
476
- reflex/constants/colors.py,sha256=xVCgae72xFCIBW6Va-y7rncMeqV2-JADJP0TCU7B3pM,1585
477
- reflex/constants/compiler.py,sha256=11x37EA2s14pQagLIgngS0WSwLviR5N1NVufKRxis6s,3800
480
+ reflex/constants/colors.py,sha256=G9GKXNF-iIGti2xugCb8VIvNjKn6Vnbcv4TqSJ1EKF4,1599
481
+ reflex/constants/compiler.py,sha256=ddlVpVPimB-CvNuw38HhsO1nd4OwIZaxQbpwrEm17lQ,3852
478
482
  reflex/constants/config.py,sha256=7uUypVy-ezLt3UN3jXEX1XvL3sKaCLBwnJCyYjg9erI,1331
483
+ reflex/constants/custom_components.py,sha256=xpDo0GE--9KzZaMYcY2tAbuYXCmKML1UdtrUAZQ2NZg,1089
479
484
  reflex/constants/event.py,sha256=7cEUTWdIhWVw7g5Bn9yTZlxNnJY5MeJL55q-vT1YOZ0,2668
480
- reflex/constants/event.pyi,sha256=Al33aGUblEtR0-JzwdalbyDwiBmSkYQXtrIlBJXA0_A,1951
481
485
  reflex/constants/installer.py,sha256=5fdePEQTjf_Yncx4BkdCNOpdmk9eopOvn9HRnH7CA6g,3176
482
486
  reflex/constants/route.py,sha256=yk0WEPqQrNbTvvV8TEy1vvmV2ISg_Gr5jdVxSqFWEm4,1956
483
- reflex/constants/route.pyi,sha256=aa9HNOGgbLh7rEYuhR53ainJW730HpmApsxjaAFpPG8,1513
484
487
  reflex/constants/style.py,sha256=gSzu0sQEQjW81PekxJnwRs7SXQQVco-LxtVjCi0IQZc,636
485
- reflex/constants/style.pyi,sha256=lDuv1GBoiidHD42iabcS_y7_Qa_EdxXGPX6MemBdL84,799
488
+ reflex/custom_components/__init__.py,sha256=R4zsvOi4dfPmHc18KEphohXnQFBPnUCb50cMR5hSLDE,36
489
+ reflex/custom_components/custom_components.py,sha256=jqFNKpvlC7Lc-yvwoTFelnVhDOaOObmfoLD4SpACZfs,18464
486
490
  reflex/event.py,sha256=0c8DLngoI2VkCspdha5qldwwMU7uDAfW-foyg06zKUM,26847
487
491
  reflex/middleware/__init__.py,sha256=x7xTeDuc73Hjj43k1J63naC9x8vzFxl4sq7cCFBX7sk,111
488
492
  reflex/middleware/hydrate_middleware.py,sha256=iXgB_VID2moU9gNpc79TJHGGhQgDH6miT32T_0Ow5tU,1484
@@ -490,30 +494,30 @@ reflex/middleware/middleware.py,sha256=PX9TPaCHI1O-F3OucsZSp94gtMP3ALYs3zXSALOlN
490
494
  reflex/model.py,sha256=XJap0qphr0hEdf2HifeY9HJvAnj2JAE6LrHaoU3ZsHw,10757
491
495
  reflex/page.py,sha256=tyqyisi3AUapkoStPNROI7fM0rZ9KU1lpi5OgJcGsvk,1922
492
496
  reflex/page.pyi,sha256=nFfbDe-tBsrIrcAKWsoTy92olMkAosbmddh_Pgf2Sxc,505
493
- reflex/reflex.py,sha256=SPbtqUwXxX5pMr5VfP-KUDQ1jyGGhopmwD_m5o9NPkw,17806
494
- reflex/route.py,sha256=eVi2TSk9uM7DDGBy6rDYe6Gq4iuHZFK00Vmoq9IbIjk,2732
495
- reflex/state.py,sha256=gRZ39sDFErOZZNSNlv2UAgb56aw2L2QarAfXor97xpQ,82492
497
+ reflex/reflex.py,sha256=Gn6Wav6LP1rpIDhijPFHE7yY5bqt3JOxNHlTMHELt8k,18130
498
+ reflex/route.py,sha256=mRv4rHuSI6x-uWALujPfM5PNtoRea6cuThjchHtA2hQ,2908
499
+ reflex/state.py,sha256=EBpEBNGrwNeqVjzFISvFC5nkBjzc9BjJf7CGPCurgrI,99764
496
500
  reflex/style.py,sha256=FEkQEsGU8v4q3pILdhTWNh1KwIh3LgS_n0Yx-wxFUhQ,8820
497
- reflex/testing.py,sha256=GttVo2FYlhVvSZ8wwUH-TzpoQOXyUd_3SQ-bke_uodg,28564
501
+ reflex/testing.py,sha256=YBJ1loeEHHvLwzmD9_KSguqJGOSdefFTXymgmKTNIcs,28785
498
502
  reflex/utils/__init__.py,sha256=y-AHKiRQAhk2oAkvn7W8cRVTZVK625ff8tTwvZtO7S4,24
499
503
  reflex/utils/build.py,sha256=9LE93QlbfTHYyQWTgGZYSXX7QGDYzuE01ttWUVw_rGQ,8573
500
504
  reflex/utils/console.py,sha256=oEEaV9oSw5B24LPEwBOGlyrk2xI91Fo-pqGEsNICrjg,4583
501
505
  reflex/utils/exceptions.py,sha256=oniHYS_c18hvwva4tvEmO33Fjmp605uFJBX4liKuqp8,504
502
- reflex/utils/exec.py,sha256=rbG1Mhx4s6yvge_dEDynbT9oAH-iJSiDCsvhSKyJsNM,8622
506
+ reflex/utils/exec.py,sha256=dhvrlvAgPmR9gW9aSk6Td2kIgBpp1vDB0BMdtdfx3yU,8843
503
507
  reflex/utils/export.py,sha256=daLyx4W-Kjit7Wjg5Db7-yFarF8r0d2IJ8aliXLDXZo,2454
504
508
  reflex/utils/format.py,sha256=Kfrzur3O-kZ7lobAF79FduTE4TmXJRVXhQRUmaiU-xQ,21905
505
509
  reflex/utils/imports.py,sha256=yah1kSVsOyUxA0wOMxJTwcmu6xlmkLJtV_zRIhshpsA,1919
506
510
  reflex/utils/path_ops.py,sha256=Vy6fU_bXvOcCvbXdTSmeLwy_C4h9seYU-3yIrVdZEZQ,4737
507
- reflex/utils/prerequisites.py,sha256=8ou8uTKK_-WKXSzWT0BFLjNykdge9ogWNPWvSimSx6E,36373
511
+ reflex/utils/prerequisites.py,sha256=5ODFv8tQX9A3qc5Q3xnem3NbnZL38eJRK35yrSVqbuk,37408
508
512
  reflex/utils/processes.py,sha256=9FUxLCJW79EoZgRcOoKq75uUwcMY81BbwJBoMN2GI38,8648
509
513
  reflex/utils/serializers.py,sha256=4LOCpri11NKVocnPb4zzgIBvW8fT-fX0h_1DIMfv5yI,8538
510
- reflex/utils/telemetry.py,sha256=eeMdDwdl2wsRXL8VozciaLCVJqLISnRihklFpw44p2A,2619
511
- reflex/utils/types.py,sha256=d50ZU4QymjtSnCBfIFK3-mjuBGrVmJpvSbLZebfb5wk,12287
514
+ reflex/utils/telemetry.py,sha256=YeKQ3iCtw-NaHCs5hTIdHqxXDl2vtcZH_p9dqAF_8sY,2659
515
+ reflex/utils/types.py,sha256=XWHqcDEcyxBrlKnaRfCUQrKq6hL8PBdUHstH18lvkVw,12820
512
516
  reflex/utils/watch.py,sha256=HzGrHQIZ_62Di0BO46kd2AZktNA3A6nFIBuf8c6ip30,2609
513
- reflex/vars.py,sha256=pdIczIQvpcTumFMshR2j8LlnaUfU5nLBL9gPBPLQWFY,64671
514
- reflex/vars.pyi,sha256=ZglB3y6GVTbIotvAVm5ewTr6Phc_-zaw0GkVWKP4zGI,5462
515
- reflex-0.4.2a1.dist-info/LICENSE,sha256=dw3zLrp9f5ObD7kqS32vWfhcImfO52PMmRqvtxq_YEE,11358
516
- reflex-0.4.2a1.dist-info/METADATA,sha256=BSTG4Hz-ZEX0ZQT6-W7aRTvs1xd76GAZEGIwFIDZyv4,11305
517
- reflex-0.4.2a1.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
518
- reflex-0.4.2a1.dist-info/entry_points.txt,sha256=H1Z5Yat_xJfy0dRT1Frk2PkO_p41Xy7fCKlj4FcdL9o,44
519
- reflex-0.4.2a1.dist-info/RECORD,,
517
+ reflex/vars.py,sha256=E-rV8Nd-XZ1XBFE7O5-H8qoigUmHbbZ9pfO107yXEiU,65766
518
+ reflex/vars.pyi,sha256=4sZo25A0nZ5nLhZ_uUnnz8enzBddhBvGmuHZAM2JhU4,5575
519
+ reflex-0.4.3a2.dist-info/LICENSE,sha256=dw3zLrp9f5ObD7kqS32vWfhcImfO52PMmRqvtxq_YEE,11358
520
+ reflex-0.4.3a2.dist-info/METADATA,sha256=kPs0pp26hcM3lU_pVthu9VE3-lh7KefhEeUynaziRLs,11377
521
+ reflex-0.4.3a2.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
522
+ reflex-0.4.3a2.dist-info/entry_points.txt,sha256=H1Z5Yat_xJfy0dRT1Frk2PkO_p41Xy7fCKlj4FcdL9o,44
523
+ reflex-0.4.3a2.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 1.8.1
2
+ Generator: poetry-core 1.6.1
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any