reflex 0.7.8__py3-none-any.whl → 0.7.9a1__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 (37) hide show
  1. reflex/.templates/jinja/web/tailwind.config.js.jinja2 +65 -31
  2. reflex/.templates/web/utils/state.js +11 -1
  3. reflex/app.py +185 -79
  4. reflex/app_mixins/lifespan.py +2 -2
  5. reflex/compiler/compiler.py +31 -4
  6. reflex/components/component.py +39 -57
  7. reflex/components/core/upload.py +8 -0
  8. reflex/components/dynamic.py +9 -1
  9. reflex/components/markdown/markdown.py +0 -21
  10. reflex/components/radix/primitives/accordion.py +1 -1
  11. reflex/components/radix/primitives/form.py +1 -1
  12. reflex/components/radix/primitives/progress.py +1 -1
  13. reflex/components/radix/primitives/slider.py +1 -1
  14. reflex/components/radix/themes/color_mode.py +1 -1
  15. reflex/components/radix/themes/color_mode.pyi +1 -1
  16. reflex/components/recharts/recharts.py +2 -2
  17. reflex/components/sonner/toast.py +1 -1
  18. reflex/config.py +4 -7
  19. reflex/constants/base.py +21 -0
  20. reflex/constants/installer.py +6 -6
  21. reflex/custom_components/custom_components.py +67 -64
  22. reflex/event.py +2 -0
  23. reflex/reflex.py +276 -265
  24. reflex/testing.py +30 -24
  25. reflex/utils/codespaces.py +6 -2
  26. reflex/utils/console.py +4 -3
  27. reflex/utils/exec.py +60 -24
  28. reflex/utils/format.py +17 -2
  29. reflex/utils/prerequisites.py +43 -30
  30. reflex/utils/processes.py +6 -6
  31. reflex/utils/types.py +11 -6
  32. reflex/vars/base.py +19 -1
  33. {reflex-0.7.8.dist-info → reflex-0.7.9a1.dist-info}/METADATA +6 -9
  34. {reflex-0.7.8.dist-info → reflex-0.7.9a1.dist-info}/RECORD +37 -37
  35. {reflex-0.7.8.dist-info → reflex-0.7.9a1.dist-info}/WHEEL +0 -0
  36. {reflex-0.7.8.dist-info → reflex-0.7.9a1.dist-info}/entry_points.txt +0 -0
  37. {reflex-0.7.8.dist-info → reflex-0.7.9a1.dist-info}/licenses/LICENSE +0 -0
reflex/utils/processes.py CHANGED
@@ -13,8 +13,8 @@ from concurrent import futures
13
13
  from pathlib import Path
14
14
  from typing import Any, Literal, overload
15
15
 
16
+ import click
16
17
  import psutil
17
- import typer
18
18
  from redis.exceptions import RedisError
19
19
  from rich.progress import Progress
20
20
 
@@ -48,7 +48,7 @@ def get_num_workers() -> int:
48
48
  redis_client.ping()
49
49
  except RedisError as re:
50
50
  console.error(f"Unable to connect to Redis: {re}")
51
- raise typer.Exit(1) from re
51
+ raise click.exceptions.Exit(1) from re
52
52
  return (os.cpu_count() or 1) * 2 + 1
53
53
 
54
54
 
@@ -141,7 +141,7 @@ def handle_port(service_name: str, port: int, auto_increment: bool) -> int:
141
141
  console.error(
142
142
  f"{service_name.capitalize()} port: {port} is already in use by PID: {process.pid}."
143
143
  )
144
- raise typer.Exit()
144
+ raise click.exceptions.Exit()
145
145
 
146
146
 
147
147
  @overload
@@ -186,7 +186,7 @@ def new_process(
186
186
  non_empty_args = list(filter(None, args)) if isinstance(args, list) else [args]
187
187
  if isinstance(args, list) and len(non_empty_args) != len(args):
188
188
  console.error(f"Invalid command: {args}")
189
- raise typer.Exit(1)
189
+ raise click.exceptions.Exit(1)
190
190
 
191
191
  path_env: str = os.environ.get("PATH", "")
192
192
 
@@ -345,7 +345,7 @@ def stream_logs(
345
345
  "NPM_CONFIG_REGISTRY environment variable. If TLS is the issue, and you know what "
346
346
  "you are doing, you can disable it by setting the SSL_NO_VERIFY environment variable."
347
347
  )
348
- raise typer.Exit(1)
348
+ raise click.exceptions.Exit(1)
349
349
  for set_of_logs in (*prior_logs, tuple(logs)):
350
350
  for line in set_of_logs:
351
351
  console.error(line, end="")
@@ -353,7 +353,7 @@ def stream_logs(
353
353
  if analytics_enabled:
354
354
  telemetry.send("error", context=message)
355
355
  console.error("Run with [bold]--loglevel debug [/bold] for the full log.")
356
- raise typer.Exit(1)
356
+ raise click.exceptions.Exit(1)
357
357
 
358
358
 
359
359
  def show_logs(message: str, process: subprocess.Popen):
reflex/utils/types.py CHANGED
@@ -11,11 +11,13 @@ from types import GenericAlias
11
11
  from typing import ( # noqa: UP035
12
12
  TYPE_CHECKING,
13
13
  Any,
14
+ Awaitable,
14
15
  ClassVar,
15
16
  Dict,
16
17
  ForwardRef,
17
18
  List,
18
19
  Literal,
20
+ MutableMapping,
19
21
  NoReturn,
20
22
  Tuple,
21
23
  Union,
@@ -73,6 +75,13 @@ if TYPE_CHECKING:
73
75
  else:
74
76
  ArgsSpec = Callable[..., list[Any]]
75
77
 
78
+ Scope = MutableMapping[str, Any]
79
+ Message = MutableMapping[str, Any]
80
+
81
+ Receive = Callable[[], Awaitable[Message]]
82
+ Send = Callable[[Message], Awaitable[None]]
83
+
84
+ ASGIApp = Callable[[Scope, Receive, Send], Awaitable[None]]
76
85
 
77
86
  PrimitiveToAnnotation = {
78
87
  list: List, # noqa: UP006
@@ -149,16 +158,12 @@ def get_type_hints(obj: Any) -> dict[str, Any]:
149
158
  return get_type_hints_og(obj)
150
159
 
151
160
 
152
- def _unionize(args: list[GenericType]) -> type:
161
+ def _unionize(args: list[GenericType]) -> GenericType:
153
162
  if not args:
154
163
  return Any # pyright: ignore [reportReturnType]
155
164
  if len(args) == 1:
156
165
  return args[0]
157
- # We are bisecting the args list here to avoid hitting the recursion limit
158
- # In Python versions >= 3.11, we can simply do `return Union[*args]`
159
- midpoint = len(args) // 2
160
- first_half, second_half = args[:midpoint], args[midpoint:]
161
- return Union[unionize(*first_half), unionize(*second_half)] # pyright: ignore [reportReturnType] # noqa: UP007
166
+ return Union[tuple(args)] # noqa: UP007
162
167
 
163
168
 
164
169
  def unionize(*args: GenericType) -> type:
reflex/vars/base.py CHANGED
@@ -483,7 +483,21 @@ class Var(Generic[VAR_TYPE]):
483
483
  _var_subclasses.append(VarSubclassEntry(cls, ToVarOperation, python_types))
484
484
 
485
485
  def __post_init__(self):
486
- """Post-initialize the var."""
486
+ """Post-initialize the var.
487
+
488
+ Raises:
489
+ TypeError: If _js_expr is not a string.
490
+ """
491
+ if not isinstance(self._js_expr, str):
492
+ raise TypeError(
493
+ f"Expected _js_expr to be a string, got value {self._js_expr!r} of type {type(self._js_expr).__name__}"
494
+ )
495
+
496
+ if self._var_data is not None and not isinstance(self._var_data, VarData):
497
+ raise TypeError(
498
+ f"Expected _var_data to be a VarData, got value {self._var_data!r} of type {type(self._var_data).__name__}"
499
+ )
500
+
487
501
  # Decode any inline Var markup and apply it to the instance
488
502
  _var_data, _js_expr = _decode_var_immutable(self._js_expr)
489
503
 
@@ -1768,6 +1782,10 @@ def figure_out_type(value: Any) -> types.GenericType:
1768
1782
  if isinstance(value, set):
1769
1783
  return set[unionize(*(figure_out_type(v) for v in value))]
1770
1784
  if isinstance(value, tuple):
1785
+ if not value:
1786
+ return tuple[NoReturn, ...]
1787
+ if len(value) <= 5:
1788
+ return tuple[tuple(figure_out_type(v) for v in value)]
1771
1789
  return tuple[unionize(*(figure_out_type(v) for v in value)), ...]
1772
1790
  if isinstance(value, Mapping):
1773
1791
  if not value:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: reflex
3
- Version: 0.7.8
3
+ Version: 0.7.9a1
4
4
  Summary: Web apps in pure Python.
5
5
  Project-URL: homepage, https://reflex.dev
6
6
  Project-URL: repository, https://github.com/reflex-dev/reflex
@@ -19,25 +19,22 @@ Classifier: Programming Language :: Python :: 3.12
19
19
  Classifier: Programming Language :: Python :: 3.13
20
20
  Requires-Python: <4.0,>=3.10
21
21
  Requires-Dist: alembic<2.0,>=1.15.2
22
- Requires-Dist: distro<2.0,>=1.9.0; platform_system == 'Linux'
22
+ Requires-Dist: click>=8
23
23
  Requires-Dist: fastapi>=0.115.0
24
- Requires-Dist: granian[reload]>=2.2.3
25
- Requires-Dist: gunicorn<24.0.0,>=23.0.0
24
+ Requires-Dist: granian[reload]>=2.2.5
26
25
  Requires-Dist: httpx<1.0,>=0.28.0
27
26
  Requires-Dist: jinja2<4.0,>=3.1.2
28
- Requires-Dist: packaging<25.0,>=24.2
27
+ Requires-Dist: packaging<26,>=24.2
29
28
  Requires-Dist: platformdirs<5.0,>=4.3.7
30
29
  Requires-Dist: psutil<8.0,>=7.0.0
31
30
  Requires-Dist: pydantic<3.0,>=1.10.21
32
31
  Requires-Dist: python-multipart<1.0,>=0.0.20
33
32
  Requires-Dist: python-socketio<6.0,>=5.12.0
34
33
  Requires-Dist: redis<6.0,>=5.2.1
35
- Requires-Dist: reflex-hosting-cli>=0.1.38
36
- Requires-Dist: rich<14.0,>=13.0.0
34
+ Requires-Dist: reflex-hosting-cli>=0.1.43
35
+ Requires-Dist: rich<15,>=13
37
36
  Requires-Dist: sqlmodel<0.1,>=0.0.24
38
- Requires-Dist: typer<1.0,>=0.15.2
39
37
  Requires-Dist: typing-extensions>=4.13.0
40
- Requires-Dist: uvicorn>=0.34.0
41
38
  Requires-Dist: wrapt<2.0,>=1.17.0
42
39
  Description-Content-Type: text/markdown
43
40
 
@@ -2,19 +2,19 @@ reflex/__init__.py,sha256=viEt38jc1skwOUBwwlwPL02hcGrm9xNQzKExVftZEx4,10365
2
2
  reflex/__init__.pyi,sha256=h9ltlhaz1dySsNYpUkN_VCjEzHGfb1h18ThYh15QjyU,11358
3
3
  reflex/__main__.py,sha256=6cVrGEyT3j3tEvlEVUatpaYfbB5EF3UVY-6vc_Z7-hw,108
4
4
  reflex/admin.py,sha256=Nbc38y-M8iaRBvh1W6DQu_D3kEhO8JFvxrog4q2cB_E,434
5
- reflex/app.py,sha256=CyPJ3TMOTBGBMY_zmRhZHBgbCj7roRCRvGLNnPt_Iv8,70073
5
+ reflex/app.py,sha256=SzOerVTRmSGZfwiANJeysQuuPshUbc2-yFTa95wHckA,73606
6
6
  reflex/assets.py,sha256=PLTKAMYPKMZq8eWXKX8uco6NZ9IiPGWal0bOPLUmU7k,3364
7
7
  reflex/base.py,sha256=U7i_ijkbSLUDm1TlTYYZEm5P6ZiVO1aIT1MJKXO6V1o,3881
8
- reflex/config.py,sha256=yXzu3CZPdNoCJ2SSdPT5G_pwN1Z36N9iUUOCfc2Qwz0,35593
9
- reflex/event.py,sha256=gxKWREUS4xbKVjLnF0i2pn0BkhDxSF1V3R-D-qU902I,63271
8
+ reflex/config.py,sha256=g2t8W07Yq7OFBzEFp5lsy2V6p977hCO872gxPpSDZSU,35521
9
+ reflex/event.py,sha256=_1ViwJFQ3wnQgf1_SP7SdUHeI7qoz62o18gaxPoIGyg,63403
10
10
  reflex/model.py,sha256=eOWc157txBIUmYMZqQeKKdn2dm4Tsf8h8CbqeLXvjeg,17577
11
11
  reflex/page.py,sha256=QUdf3dtlTj0Yoq7KPwFHexRgEddlhSTGfSqxcR8OXXQ,2407
12
12
  reflex/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
- reflex/reflex.py,sha256=Aw3FVLmA9vwKjYxrhlD9nUZ3Hs6pnizC4EcViY0cpVk,21717
13
+ reflex/reflex.py,sha256=T3bAFl3GUhmb7rCR9OH5Gl6QZfhvvUGLdTuj7AtBWUg,20837
14
14
  reflex/route.py,sha256=nn_hJwtQdjiqH_dHXfqMGWKllnyPQZTSR-KWdHDhoOs,4210
15
15
  reflex/state.py,sha256=JfwlsoFUzHnfJM8GLAFXw5K_UwK5wJOsetljx6hU6gk,142341
16
16
  reflex/style.py,sha256=8ciwcReoKSrPSwoteXJwv7YTK514tf7jrJ5RfqztmvA,13186
17
- reflex/testing.py,sha256=17Xw2bjsSlxnDUnBv3tM7dvO-qKrxq0augI37WzMv4A,36015
17
+ reflex/testing.py,sha256=QNas8LmceEOs3P5u9yxjBOJ1yT50otEB0UxvBegojDA,36078
18
18
  reflex/.templates/apps/blank/assets/favicon.ico,sha256=baxxgDAQ2V4-G5Q4S2yK5uUJTUGkv-AOWBQ0xd6myUo,4286
19
19
  reflex/.templates/apps/blank/code/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
20
  reflex/.templates/apps/blank/code/blank.py,sha256=oKnsBBZM1-_RFAuwGKgfiCzgsrHlN_m_XP0-Fpnld7k,926
@@ -25,7 +25,7 @@ reflex/.templates/jinja/custom_components/demo_app.py.jinja2,sha256=ipbKtObNqQLc
25
25
  reflex/.templates/jinja/custom_components/pyproject.toml.jinja2,sha256=HG-k3pruUlMy7xYz339hgFkNMTLqB-C_FTLKkOgfBPM,630
26
26
  reflex/.templates/jinja/custom_components/src.py.jinja2,sha256=e80PwMI6NoeQtGJ0NXWhYrkqUe7jvvJTFuztYQe-R5w,2403
27
27
  reflex/.templates/jinja/web/package.json.jinja2,sha256=Dyg7DbKaEgxUoaV_DUsv_bHcT0h1mXKgO4R_pVzlHQw,707
28
- reflex/.templates/jinja/web/tailwind.config.js.jinja2,sha256=uZMIvtL94OZh6h8zsduv3ox6EXnnYgfVXB_5moOe86E,761
28
+ reflex/.templates/jinja/web/tailwind.config.js.jinja2,sha256=oHjAp0P-lzl5GLuXlk87JQw6NoDZr3yIn1Bm8O1Vf5Q,2293
29
29
  reflex/.templates/jinja/web/pages/_app.js.jinja2,sha256=6v6XPqbYXNiEDyZmEGfjlg_NKRg4qQkc7j0aaxr-Z1s,1391
30
30
  reflex/.templates/jinja/web/pages/_document.js.jinja2,sha256=E2r3MWp-gimAa6DdRs9ErQpPEyjS_yV5fdid_wdOOlA,182
31
31
  reflex/.templates/jinja/web/pages/base_page.js.jinja2,sha256=-Jykv29ZqzsQyyRe_iR2gUD5ac-X5RhDrGs0-diOMOA,400
@@ -47,24 +47,24 @@ reflex/.templates/web/components/reflex/radix_themes_color_mode_provider.js,sha2
47
47
  reflex/.templates/web/components/shiki/code.js,sha256=UO0hQnm2w1j2VMgj46cnplO6ZLK3p3qhcxp6irjZBxQ,1116
48
48
  reflex/.templates/web/styles/tailwind.css,sha256=wGOoICTy1G0e5bWZ4LYOVgRa3ZT7M44tC4g6CKh6ZPo,112
49
49
  reflex/.templates/web/utils/client_side_routing.js,sha256=cOu4wUHDQtGl1yo5goxljZ94SLZLyr9R3S9Rehcvjio,1475
50
- reflex/.templates/web/utils/state.js,sha256=tfcXyofonZkBJQdapzRXr75sRuBwXtkK8dvOUDlZSNE,31191
50
+ reflex/.templates/web/utils/state.js,sha256=hJtgAPCQSTQ0Ji2xbFp1mJuBodPW4eX18s48q7V_hDM,31456
51
51
  reflex/.templates/web/utils/helpers/dataeditor.js,sha256=pG6MgsHuStDR7-qPipzfiK32j9bKDBa-4hZ0JSUo4JM,1623
52
52
  reflex/.templates/web/utils/helpers/debounce.js,sha256=xGhtTRtS_xIcaeqnYVvYJNseLgQVk-DW-eFiHJYO9As,528
53
53
  reflex/.templates/web/utils/helpers/paste.js,sha256=ef30HsR83jRzzvZnl8yV79yqFP8TC_u8SlN99cCS_OM,1799
54
54
  reflex/.templates/web/utils/helpers/range.js,sha256=Bjr7Ex1Mghpsopjfrcp__IVFw8F8AsMiP-0nE20ZZwk,1091
55
55
  reflex/.templates/web/utils/helpers/throttle.js,sha256=qxeyaEojaTeX36FPGftzVWrzDsRQU4iqg3U9RJz9Vj4,566
56
56
  reflex/app_mixins/__init__.py,sha256=Oegz3-gZLP9p2OAN5ALNbsgxuNQfS6lGZgQA8cc-9mQ,137
57
- reflex/app_mixins/lifespan.py,sha256=cjH--QnsshmmOiQzkOpClqDspH1KmXj68y5IsZ_Pm3c,3289
57
+ reflex/app_mixins/lifespan.py,sha256=b8jTlg7WyaUw4QIujcmJBXAnVBW8Uoi6l7qgWNLjUD0,3308
58
58
  reflex/app_mixins/middleware.py,sha256=3OTCEF0rjhd2yTSMCS7wi7J50BxZ8ztCg5K7zfdehhs,2828
59
59
  reflex/app_mixins/mixin.py,sha256=si0Pa0U1EtJc-a6iZntqU9B7_NrPILwrGFxk9mKHBCE,317
60
60
  reflex/compiler/__init__.py,sha256=r8jqmDSFf09iV2lHlNhfc9XrTLjNxfDNwPYlxS4cmHE,27
61
- reflex/compiler/compiler.py,sha256=Iv42CtutvIOwnPIEWPjLWz-0VcIQFiBOEdUDraFMSZA,27339
61
+ reflex/compiler/compiler.py,sha256=VuXr7j7i-ZZC8m6xtnYFVR97laTqwKe-8m-harq-cxs,28175
62
62
  reflex/compiler/templates.py,sha256=NX3YUMVGGyDsy2JuDv-AmklMM0pKJHLPsIpdqamgqRQ,5854
63
63
  reflex/compiler/utils.py,sha256=nFkAyJK0anKVdknQMSsmB9z0FnsZIr4myl5s0qXvPHI,16067
64
64
  reflex/components/__init__.py,sha256=zbIXThv1WPI0FdIGf9G9RAmGoCRoGy7nHcSZ8K5D5bA,624
65
65
  reflex/components/__init__.pyi,sha256=qoj1zIWaitcZOGcJ6k7wuGJk_GAJCE9Xtx8CeRVrvoE,861
66
- reflex/components/component.py,sha256=_cpdSeHn5oSEG69Dbax3s86SEVoeV3iaV5Mqjy2etLY,90343
67
- reflex/components/dynamic.py,sha256=DdlFbtciytsEbVdFHm-obmE4FFkSR6x2DH0BzYI_4C4,7150
66
+ reflex/components/component.py,sha256=dwF3a48OvlgcMwGWgAn592u8ZeStwV19AzKWQTtbGdM,89500
67
+ reflex/components/dynamic.py,sha256=HyETl1flxzPwgXVLRAGcIYqaV-SV4UCjL-VWdLGwtos,7293
68
68
  reflex/components/literals.py,sha256=hogLnwTJxFJODIvqihg-GD9kFZVsEBDoYzaRit56Nuk,501
69
69
  reflex/components/props.py,sha256=8F2ZNeF16BDiTh-E4F-U_vks41BMJgmkTM7xbjGvfOA,2593
70
70
  reflex/components/base/__init__.py,sha256=QIOxOPT87WrSE4TSHAsZ-358VzvUXAe1w8vWogQ3Uuo,730
@@ -112,7 +112,7 @@ reflex/components/core/match.py,sha256=qCLSQ70Pcsv3pSAEYfHAjahDazSGDSIBQ2CwkBshK
112
112
  reflex/components/core/responsive.py,sha256=ACZdtJ4a4F8B3dm1k8h6J2_UJx0Z5LDB7XHQ2ty4wAc,1911
113
113
  reflex/components/core/sticky.py,sha256=2B3TxrwG2Rtp_lv1VkMOIF2bqSiT7qYGbqbiZiMKxKY,3856
114
114
  reflex/components/core/sticky.pyi,sha256=kC2WokNamJUU3LKeMZNZsptBJ4ZOj_V-WAfw09EvBpo,32340
115
- reflex/components/core/upload.py,sha256=19-TkAHwQpkqOv_Pr5bdBQZfVgwBUisr9SUhenyfbfE,11796
115
+ reflex/components/core/upload.py,sha256=LqBNKU9LZ0PhaGGnJGEHtXZ39MIqzCghBgUXt43kGH8,12156
116
116
  reflex/components/core/upload.pyi,sha256=dmdkAnaYH6SftvycGLLnfhmyMNx8loO5NjR-SpWmIss,14974
117
117
  reflex/components/core/layout/__init__.py,sha256=znldZaj_NGt8qCZDG70GMwjMTskcvCf_2N_EjCAHwdc,30
118
118
  reflex/components/datadisplay/__init__.py,sha256=L8pWWKNHWdUD2fbZRoEKjd_8c_hpDdGYO463hwkoIi4,438
@@ -161,7 +161,7 @@ reflex/components/lucide/__init__.py,sha256=EggTK2MuQKQeOBLKW-mF0VaDK9zdWBImu1HO
161
161
  reflex/components/lucide/icon.py,sha256=woEJHHWSSCulCHjH4pQ9kSNEXM9lzy6aqtSu7gpr9UQ,33686
162
162
  reflex/components/lucide/icon.pyi,sha256=vtL48RmpYPfO6PplJ0AWNAi8yCN0C4u2E6nQzKYVYto,36261
163
163
  reflex/components/markdown/__init__.py,sha256=Dfl1At5uYoY7H4ufZU_RY2KOGQDLtj75dsZ2BTqqAns,87
164
- reflex/components/markdown/markdown.py,sha256=QW_z5dvaCyVsR-u8EdneywcbE1qp1Wxf0_MN1D2GMns,16173
164
+ reflex/components/markdown/markdown.py,sha256=VAsWga4OCnLjEiy6ubQo_Mapj5OsKkjlBYN2PwEObnE,15502
165
165
  reflex/components/markdown/markdown.pyi,sha256=zFWbfcPQ_DoVZaSfRT2WFQ3A37eVBf149ih3rBgbpvY,4255
166
166
  reflex/components/moment/__init__.py,sha256=jGnZgRBivYJQPIcFgtLaXFteCeIG3gGH5ACXkjEgmsI,92
167
167
  reflex/components/moment/moment.py,sha256=NO2ZLmZzbnmln2e9D_5VCEz0-btq6ONvBdbKky0SFJw,4067
@@ -182,24 +182,24 @@ reflex/components/radix/__init__.py,sha256=fRsLvIO3MrTtPOXtmnxYDB9phvzlcbyB_utgp
182
182
  reflex/components/radix/__init__.pyi,sha256=YpWw_k35yv_Yq_0RZNCb52fJZ3dANWAnQllhVoVCWEE,3988
183
183
  reflex/components/radix/primitives/__init__.py,sha256=R2sdZJqQCYaLScGkXnXDKAjVgV5MidceemooEUtvBt4,443
184
184
  reflex/components/radix/primitives/__init__.pyi,sha256=C3ryDDEVq8kZp2PBm-_onHKXumFnKD__B2puDbO4WjE,401
185
- reflex/components/radix/primitives/accordion.py,sha256=cWsaKXu7U54kTJPYZYOZxN7zqAnKHSFy8TwapWA6jhc,16110
185
+ reflex/components/radix/primitives/accordion.py,sha256=vxGYnIjWUU2m6a6ECQ46t2bVuZAOREQwDwXoEa5UD0g,16110
186
186
  reflex/components/radix/primitives/accordion.pyi,sha256=RBxDpoL9MlFCUVvM98S20lZVhapF129RFEIq6_xSG30,27576
187
187
  reflex/components/radix/primitives/base.py,sha256=XZn2xmwr-Raex5GZ4bADYHs82THHswXLMNdlPvRUyp4,879
188
188
  reflex/components/radix/primitives/base.pyi,sha256=r5FXMBbL-2OtDX6o8Jc42x6FDTIixAwN8p96J7wr7yA,4499
189
189
  reflex/components/radix/primitives/drawer.py,sha256=Q7zXxSOEj-JCFhBjNKCU7jxH6UChLBunaDmlE9Ak3Go,9256
190
190
  reflex/components/radix/primitives/drawer.pyi,sha256=_nTQ0cBZFepIlP5C3PjsrJDzzk6zPV96Fmnx8KrxY3c,28993
191
- reflex/components/radix/primitives/form.py,sha256=f3JcPxihrYM8-Xit2vR6RfJFlK6NqPGal2WFF0C3SiU,4832
191
+ reflex/components/radix/primitives/form.py,sha256=1hLKcUrwtMaiqVJlncsYFnKRzmlPBhrTa8mk7HKBL50,4832
192
192
  reflex/components/radix/primitives/form.pyi,sha256=5XU05lGu7fVMr1IKJp2YV5P3gWl4CnoMaGO4kmyFUNA,46444
193
- reflex/components/radix/primitives/progress.py,sha256=Z_yqP2ZoQz6OOsyuxLsMmmhPv1VDLZakUDagrMVN5JE,3989
193
+ reflex/components/radix/primitives/progress.py,sha256=2EcOFmbd6Uzy_GpKVdZwsBoAQtazH4-7X2rkBh7Yd4Y,3989
194
194
  reflex/components/radix/primitives/progress.pyi,sha256=wI_Kh9aVOS10OuT4msUn4qPpl4hrxJC8wMy7eimWfes,16111
195
- reflex/components/radix/primitives/slider.py,sha256=460UNgWFFWKSywCpgILVBP8ODROzfUKF9g3jwQz2Q3g,5031
195
+ reflex/components/radix/primitives/slider.py,sha256=d4X3aOywPdT45L0KrORxvlk_gKq3Tjfx9VMTdQsIE84,5031
196
196
  reflex/components/radix/primitives/slider.pyi,sha256=v-uSIHbts7VnEQ6EG6PGIE3p6K3lucI9-YSSrhtmDLA,12118
197
197
  reflex/components/radix/themes/__init__.py,sha256=3ASzR_OrjkLXZ6CksGKIQPOcyYZ984NzXrn2UCIdxUc,492
198
198
  reflex/components/radix/themes/__init__.pyi,sha256=RVeS7TipR51MgmsWJStZwh4QxKBtOMtCguBtVbUJqX8,476
199
199
  reflex/components/radix/themes/base.py,sha256=lwphGEjWXk1Srk1pCJBEV-7anN4vMnWIAIzLgmbxSxU,8690
200
200
  reflex/components/radix/themes/base.pyi,sha256=eztGbh4Hs6hVk_Nuri9vstbGBOQwgbYW28OMcei4wM0,24006
201
- reflex/components/radix/themes/color_mode.py,sha256=ffuaHYR4hSxVP17dXbJD5TSwZyoQm6HDIidCFR8gEPU,6491
202
- reflex/components/radix/themes/color_mode.pyi,sha256=fie7i512tUYkW0rHWMuFxpQ3t0FFaqwNupYJ9Ctzq-E,20741
201
+ reflex/components/radix/themes/color_mode.py,sha256=ZdRuFK7SrvB6Lq7dBTHSIku4y15BcCi53tmJl0lVlJA,6490
202
+ reflex/components/radix/themes/color_mode.pyi,sha256=BJlpNSm6-q2pvMB8Bl0wP2KXzorh3OYQAN8kvM8_xBE,20740
203
203
  reflex/components/radix/themes/components/__init__.py,sha256=fzc5ghmmbIQ8yaxKQQY83TINb6k2uVPX-wddyTDlQx8,423
204
204
  reflex/components/radix/themes/components/__init__.pyi,sha256=-yTF7ROfG_qxrRL-lmCIidPJtFY5StumKB7VfWsDqSw,1946
205
205
  reflex/components/radix/themes/components/alert_dialog.py,sha256=UDSU4eHsJ-O40Zc1myVnZn3KkJmL1ByOeyu71h6M7PA,3271
@@ -324,10 +324,10 @@ reflex/components/recharts/general.py,sha256=DuPDfccUWWehc40ji7_JSYHX_AoJyGn_-4y
324
324
  reflex/components/recharts/general.pyi,sha256=9zkY77QdhLoJxflnoDe0tZGpsYAaXYoEFmcM-mkhP9I,23100
325
325
  reflex/components/recharts/polar.py,sha256=lqMZZYHK4GQe_a3SIcjvQgK4XuIy3dHy-xFh53iaDW8,15535
326
326
  reflex/components/recharts/polar.pyi,sha256=GibQqLnb_OlNCkoi2qzaesYffym69MyZ_AMOULXm9fE,26943
327
- reflex/components/recharts/recharts.py,sha256=is9FG2MJ6aYsZLDe1uW4zWNRs7LNJFKVbAndYC77jqA,3176
327
+ reflex/components/recharts/recharts.py,sha256=dhWPigyvY3OGtDmp798LhplxacGsLlZkHI_1cu2hKUw,3176
328
328
  reflex/components/recharts/recharts.pyi,sha256=iuhTGVjqa87BVZm-Hlhw3qrmROkjXtQuT26bjOgIE3M,6907
329
329
  reflex/components/sonner/__init__.py,sha256=L_mdRIy7-ccRGSz5VK6J8O-c-e-D1p9xWw29_ErrvGg,68
330
- reflex/components/sonner/toast.py,sha256=hvjzVN3eclix7PJpDTVkFSD_Re8X0lCPjHh5EfRjDro,12440
330
+ reflex/components/sonner/toast.py,sha256=Br4XaeaukPN61y5-zV5pZqVPG3xvneprV4m7WhQhJYY,12440
331
331
  reflex/components/sonner/toast.pyi,sha256=zlWNdQaQHI52D88C9-vAgq0GRfDoIDykohdi822KdmE,7620
332
332
  reflex/components/suneditor/__init__.py,sha256=htkPzy0O_1ro1nw8w8gFPjYhg5xywMpsUfc4Dl3OHuw,109
333
333
  reflex/components/suneditor/editor.py,sha256=MZ_x1rEuEC5fu7_rtgVNpJbytPfymItzKMzESMZLzO4,7895
@@ -339,19 +339,19 @@ reflex/components/tags/match_tag.py,sha256=3lba1H5pCcKkqxEHzM6DZb5s9s0yJLN4Se3vd
339
339
  reflex/components/tags/tag.py,sha256=BRPODHi1R5g4VwkYLztIUJBMyDgrGPZRqB-QP_u67jk,3665
340
340
  reflex/components/tags/tagless.py,sha256=qO7Gm4V0ITDyymHkyltfz53155ZBt-W_WIPDYy93ca0,587
341
341
  reflex/constants/__init__.py,sha256=c5k9wh50zB_zDXkublXepPZsfAmnYx7ZeNSufIX5qKM,2180
342
- reflex/constants/base.py,sha256=IT1mppa9NPDLsXGmbW8AeNQFlNK9YbDHFipL290ErQI,8156
342
+ reflex/constants/base.py,sha256=_ah1Gt41XUNW87vDucfMYQtHmJmGvQMbHfl7Q1oQDVQ,8617
343
343
  reflex/constants/colors.py,sha256=cgLn8iEWtlpjQgbhhlCOGjbhfOULKnzqqzPph63SJoI,1613
344
344
  reflex/constants/compiler.py,sha256=S21T7t2nDBRf1NB0diNo1A3AJuH-w5xo8YoNR5ZAzcY,5692
345
345
  reflex/constants/config.py,sha256=4EljK_fD1Nf4-OfJ9HLYeHSW5xTfNPN6AGjzJ5ARZSY,1579
346
346
  reflex/constants/custom_components.py,sha256=joJt4CEt1yKy7wsBH6vYo7_QRW0O_fWXrrTf0VY2q14,1317
347
347
  reflex/constants/event.py,sha256=8PWobGXnUIbkRS73dRiroj5BJw4C3sbo5AHAhJTZFyM,2849
348
- reflex/constants/installer.py,sha256=NET96F69MAoF_H3bLL_Ty_eLTdG9GrphKh2ehRmsrlM,3063
348
+ reflex/constants/installer.py,sha256=zjxVxhGLhwmgo-EpoATqM6yZx38IxjY-u7OqLRhz9NI,3064
349
349
  reflex/constants/route.py,sha256=YnLgsp0iYc1lFjQ-cEqTlSE5SEeaNkaWORBoUM0-taI,2079
350
350
  reflex/constants/state.py,sha256=6Mfr7xVcAZOj5aSy7kp0W6r8oTs7K30URgGDAAFLfPQ,294
351
351
  reflex/constants/style.py,sha256=EPgRYHhAlcrPUBc2HkDTdTj-Q0uDAXHlq8Sp6D35Zf4,475
352
352
  reflex/constants/utils.py,sha256=e1ChEvbHfmE_V2UJvCSUhD_qTVAIhEGPpRJSqdSd6PA,780
353
353
  reflex/custom_components/__init__.py,sha256=R4zsvOi4dfPmHc18KEphohXnQFBPnUCb50cMR5hSLDE,36
354
- reflex/custom_components/custom_components.py,sha256=lzwbTgkuz2-OBnYTu5H5PXtAwTMtjqBRoUTNrSVXCto,20794
354
+ reflex/custom_components/custom_components.py,sha256=_YIsOv3-ygomBFyj4Ku8QgjFZowVqQK51ipTwWhDkwo,20838
355
355
  reflex/experimental/__init__.py,sha256=tL-_HpKnP6HPqur1pQtpyq_B6tXkZPFadBhtT7-8Mm0,2521
356
356
  reflex/experimental/client_state.py,sha256=OVojc-a_Xm70_a7lkGeGAQ7ByLB6xipS5WISRqytEh8,9905
357
357
  reflex/experimental/hooks.py,sha256=CHYGrAE5t8riltrJmDFgJ4D2Vhmhw-y3B3MSGNlOQow,2366
@@ -368,37 +368,37 @@ reflex/middleware/hydrate_middleware.py,sha256=1ch7bx2ZhojOR15b-LHD2JztrWCnpPJjT
368
368
  reflex/middleware/middleware.py,sha256=p5VVoIgQ_NwOg_GOY6g0S4fmrV76_VE1zt-HiwbMw-s,1158
369
369
  reflex/utils/__init__.py,sha256=y-AHKiRQAhk2oAkvn7W8cRVTZVK625ff8tTwvZtO7S4,24
370
370
  reflex/utils/build.py,sha256=yt6obelsj1MUhTVHoaxdOH--gYtIEpekYjTN97iFrNg,9118
371
- reflex/utils/codespaces.py,sha256=ISMnNv9boYTQl5ydymmcUZwkosMIHnxMG2bntRGetvI,2945
371
+ reflex/utils/codespaces.py,sha256=kEQ-j-jclTukFpXDlYgNp95kYMGDrQmP3VNEoYGZ1u4,3052
372
372
  reflex/utils/compat.py,sha256=aSJH_M6iomgHPQ4onQ153xh1MWqPi3HSYDzE68N6gZM,2635
373
- reflex/utils/console.py,sha256=97QCo1vXFM-B32zrvYH51yzDRyNPkXD5nNriaiCrlpc,9439
373
+ reflex/utils/console.py,sha256=XTIL7uK1Iz1pOb_CJWx7ikHG8hTNjn2lsirEqe0gEo0,9463
374
374
  reflex/utils/decorator.py,sha256=DVrlVGljV5OchMs-5_y1CbbqnCWlH6lv-dFko8yHxVY,1738
375
375
  reflex/utils/exceptions.py,sha256=Wwu7Ji2xgq521bJKtU2NgjwhmFfnG8erirEVN2h8S-g,8884
376
- reflex/utils/exec.py,sha256=VKZeW74TccP5l-_w-7kkSx39ivi__0SRBTxk91vACrk,19403
376
+ reflex/utils/exec.py,sha256=in9Oig2k0tQrxUJhe-8GuMPUG4JGpcyEvUsvp-aPTqg,20368
377
377
  reflex/utils/export.py,sha256=eRAVmXyOfCjaL0g4YwWy9f48YT21tfKtd8Evt37_sRY,2567
378
- reflex/utils/format.py,sha256=onGSned5gh_C6l1HRAIlsq50D6C8xt1sy-4c80xFD78,20627
378
+ reflex/utils/format.py,sha256=PccNwMi85w9eeK_Zmfo5-eg0ExQaIhkB4Qr3dbUm1i4,21279
379
379
  reflex/utils/imports.py,sha256=NIWeNZPTBJM87OseXjff9XHnAaq4sz1fDbt3b0pTdJw,4090
380
380
  reflex/utils/lazy_loader.py,sha256=pdirbNnGfB-r21zgjzHk0c6vODXqKLn9vbJiP5Yr5nQ,4138
381
381
  reflex/utils/misc.py,sha256=pROvogdVRLrZx_5vD18PkMwRAkZnw09Nhb7_YdewUbw,731
382
382
  reflex/utils/net.py,sha256=OxYAYu1rZgdQ3TH_UofsUiMuvqFw_z0HE_CUU3hjhCI,3202
383
383
  reflex/utils/path_ops.py,sha256=idGxUSJRKwYLLi7ppXkq3eV6rvAytJoO-n-FuLkwl3o,7604
384
- reflex/utils/prerequisites.py,sha256=uRtoVjnx0Oopak-rwjdfYrkGCREHyXaqIK_gCetdlxY,66454
385
- reflex/utils/processes.py,sha256=PcDu0y7IZl_1MSVgG73F1awBZzxn4fI00IKlp9l8324,16637
384
+ reflex/utils/prerequisites.py,sha256=WEZQbLJmdwrONdkbitsG8tMQ3rj2gw2c24knokZRfKc,67162
385
+ reflex/utils/processes.py,sha256=Xo9_lpYvS20XXZxjfRlhcVQSnYmMfePvTZ8gKA7XY04,16692
386
386
  reflex/utils/pyi_generator.py,sha256=t9LwSaadHDSecv2nAHQzKvbJEg3gAEVwLFEuOe61tAE,45049
387
387
  reflex/utils/redir.py,sha256=23OcUTsbThak5VYMQPOkSzyNsMB3VkgtF1bodSnHwbE,1533
388
388
  reflex/utils/registry.py,sha256=ymBScatt5YiQz9tPYHCzSPs-X7z29hGuu2tlZG28YDQ,1877
389
389
  reflex/utils/serializers.py,sha256=2sXT4YZs3SsAibH-Zb6EmqyDz4nm8hc4gfTp2Srj8MA,13350
390
390
  reflex/utils/telemetry.py,sha256=kZeI_RjY32MTpx12Y5hMXyd6bkli9xAQsmbbIKuf0fg,6779
391
- reflex/utils/types.py,sha256=v16vkx7Qprdl1dS_j78u12Uwm3d8HyBSN5YONi-4VMQ,33749
391
+ reflex/utils/types.py,sha256=c3tg89sEnZ6E3muUEbOibO3YltvaXhg5BjOC5hsqLWk,33691
392
392
  reflex/vars/__init__.py,sha256=2Kv6Oh9g3ISZFESjL1al8KiO7QBZUXmLKGMCBsP-DoY,1243
393
- reflex/vars/base.py,sha256=GzPHn9vfMRGmxoCmE7-AZRuDYBQqwpalA3cxu7CHnSE,102123
393
+ reflex/vars/base.py,sha256=4HBnqivtraUOxpow8UPqoO0aFghfVjwYMrGz9eTVoaY,102820
394
394
  reflex/vars/datetime.py,sha256=fEc68T0A6XYlAJ3AGteCIb_vDqgoO1O8tpjMzqlp9sc,5104
395
395
  reflex/vars/dep_tracking.py,sha256=fW9xDWOk-VM2kwBVlSe46KLfP3Gqj5Ni_SJx_IdR6-k,13840
396
396
  reflex/vars/function.py,sha256=0i-VkxHkDJmZtfQUwUfaF0rlS6WM8azjwQ8k7rEOkyk,13944
397
397
  reflex/vars/number.py,sha256=N-ZeV_ebriaFpuRf8IL7TT3D4h2ti-MUYMOISEw4N8k,27846
398
398
  reflex/vars/object.py,sha256=P_BBOxP4Z53IiHPVx5-P279lFEwdEIYLWcqO_h1UyLo,17134
399
399
  reflex/vars/sequence.py,sha256=N0BwsYbFC4KkeC-N0Bc2NcKyfrbIxGh5FIWDy7Jl7Fs,55192
400
- reflex-0.7.8.dist-info/METADATA,sha256=9KSrCRCpIOgBteqXeb5EQHPtVm3ecsb6nGO9GV1rYYA,11877
401
- reflex-0.7.8.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
402
- reflex-0.7.8.dist-info/entry_points.txt,sha256=Rxt4dXc7MLBNt5CSHTehVPuSe9Xqow4HLX55nD9tQQ0,45
403
- reflex-0.7.8.dist-info/licenses/LICENSE,sha256=dw3zLrp9f5ObD7kqS32vWfhcImfO52PMmRqvtxq_YEE,11358
404
- reflex-0.7.8.dist-info/RECORD,,
400
+ reflex-0.7.9a1.dist-info/METADATA,sha256=jzH6mNEOstlJ7cY4X9oMOKu-1tMtyrECDufM5RKbS0k,11728
401
+ reflex-0.7.9a1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
402
+ reflex-0.7.9a1.dist-info/entry_points.txt,sha256=Rxt4dXc7MLBNt5CSHTehVPuSe9Xqow4HLX55nD9tQQ0,45
403
+ reflex-0.7.9a1.dist-info/licenses/LICENSE,sha256=dw3zLrp9f5ObD7kqS32vWfhcImfO52PMmRqvtxq_YEE,11358
404
+ reflex-0.7.9a1.dist-info/RECORD,,