reflex 0.7.12a1__py3-none-any.whl → 0.7.13__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 (55) hide show
  1. reflex/.templates/jinja/app/rxconfig.py.jinja2 +1 -0
  2. reflex/.templates/web/postcss.config.js +0 -1
  3. reflex/.templates/web/utils/state.js +1 -1
  4. reflex/__init__.py +1 -0
  5. reflex/__init__.pyi +1 -0
  6. reflex/app.py +101 -29
  7. reflex/compiler/compiler.py +11 -62
  8. reflex/compiler/templates.py +12 -3
  9. reflex/compiler/utils.py +20 -4
  10. reflex/components/component.py +366 -88
  11. reflex/components/core/helmet.pyi +66 -0
  12. reflex/components/datadisplay/code.py +1 -1
  13. reflex/components/datadisplay/shiki_code_block.py +97 -86
  14. reflex/components/datadisplay/shiki_code_block.pyi +4 -2
  15. reflex/components/el/elements/forms.py +1 -1
  16. reflex/components/lucide/icon.py +2 -1
  17. reflex/components/lucide/icon.pyi +1 -0
  18. reflex/components/plotly/plotly.py +2 -2
  19. reflex/components/plotly/plotly.pyi +2 -3
  20. reflex/components/radix/primitives/accordion.py +1 -1
  21. reflex/components/radix/primitives/drawer.py +1 -1
  22. reflex/components/radix/primitives/form.py +1 -1
  23. reflex/components/radix/themes/base.py +4 -11
  24. reflex/components/radix/themes/components/icon_button.py +2 -2
  25. reflex/components/radix/themes/components/text_field.py +3 -0
  26. reflex/components/radix/themes/components/text_field.pyi +2 -0
  27. reflex/components/radix/themes/layout/list.py +1 -1
  28. reflex/components/tags/iter_tag.py +3 -5
  29. reflex/config.py +57 -7
  30. reflex/constants/__init__.py +0 -2
  31. reflex/event.py +154 -93
  32. reflex/experimental/client_state.py +3 -1
  33. reflex/plugins/__init__.py +7 -0
  34. reflex/plugins/base.py +101 -0
  35. reflex/plugins/tailwind_v3.py +255 -0
  36. reflex/plugins/tailwind_v4.py +258 -0
  37. reflex/state.py +24 -3
  38. reflex/utils/build.py +1 -1
  39. reflex/utils/console.py +1 -1
  40. reflex/utils/exec.py +23 -0
  41. reflex/utils/path_ops.py +26 -6
  42. reflex/utils/prerequisites.py +21 -90
  43. reflex/utils/pyi_generator.py +12 -2
  44. reflex/utils/types.py +15 -1
  45. reflex/vars/base.py +59 -4
  46. reflex/vars/object.py +8 -0
  47. {reflex-0.7.12a1.dist-info → reflex-0.7.13.dist-info}/METADATA +2 -2
  48. {reflex-0.7.12a1.dist-info → reflex-0.7.13.dist-info}/RECORD +52 -50
  49. scripts/hatch_build.py +17 -0
  50. reflex/.templates/jinja/web/tailwind.config.js.jinja2 +0 -66
  51. reflex/.templates/web/styles/tailwind.css +0 -6
  52. reflex/constants/style.py +0 -16
  53. {reflex-0.7.12a1.dist-info → reflex-0.7.13.dist-info}/WHEEL +0 -0
  54. {reflex-0.7.12a1.dist-info → reflex-0.7.13.dist-info}/entry_points.txt +0 -0
  55. {reflex-0.7.12a1.dist-info → reflex-0.7.13.dist-info}/licenses/LICENSE +0 -0
@@ -17,7 +17,6 @@ import re
17
17
  import shutil
18
18
  import sys
19
19
  import tempfile
20
- import time
21
20
  import typing
22
21
  import zipfile
23
22
  from collections.abc import Callable, Sequence
@@ -40,10 +39,7 @@ from reflex.compiler import templates
40
39
  from reflex.config import Config, environment, get_config
41
40
  from reflex.utils import console, net, path_ops, processes, redir
42
41
  from reflex.utils.decorator import once
43
- from reflex.utils.exceptions import (
44
- GeneratedCodeHasNoFunctionDefsError,
45
- SystemPackageMissingError,
46
- )
42
+ from reflex.utils.exceptions import SystemPackageMissingError
47
43
  from reflex.utils.format import format_library_name
48
44
  from reflex.utils.registry import get_npm_registry
49
45
 
@@ -980,7 +976,7 @@ def initialize_web_directory():
980
976
  project_hash = get_project_hash()
981
977
 
982
978
  console.debug(f"Copying {constants.Templates.Dirs.WEB_TEMPLATE} to {get_web_dir()}")
983
- path_ops.cp(constants.Templates.Dirs.WEB_TEMPLATE, str(get_web_dir()))
979
+ path_ops.copy_tree(constants.Templates.Dirs.WEB_TEMPLATE, str(get_web_dir()))
984
980
 
985
981
  console.debug("Initializing the web directory.")
986
982
  initialize_package_json()
@@ -1120,7 +1116,7 @@ def _update_next_config(
1120
1116
 
1121
1117
  if transpile_packages:
1122
1118
  next_config["transpilePackages"] = list(
1123
- {format_library_name(p) for p in transpile_packages}
1119
+ dict.fromkeys([format_library_name(p) for p in transpile_packages])
1124
1120
  )
1125
1121
  if export:
1126
1122
  next_config["output"] = "export"
@@ -1317,47 +1313,42 @@ def install_frontend_packages(packages: set[str], config: Config):
1317
1313
  primary_package_manager = install_package_managers[0]
1318
1314
  fallbacks = install_package_managers[1:]
1319
1315
 
1320
- processes.run_process_with_fallbacks(
1321
- [primary_package_manager, "install", "--legacy-peer-deps"],
1316
+ run_package_manager = functools.partial(
1317
+ processes.run_process_with_fallbacks,
1322
1318
  fallbacks=fallbacks,
1323
1319
  analytics_enabled=True,
1324
- show_status_message="Installing base frontend packages",
1325
1320
  cwd=get_web_dir(),
1326
1321
  shell=constants.IS_WINDOWS,
1327
1322
  env=env,
1328
1323
  )
1329
1324
 
1330
- if config.tailwind is not None:
1331
- processes.run_process_with_fallbacks(
1325
+ run_package_manager(
1326
+ [primary_package_manager, "install", "--legacy-peer-deps"],
1327
+ show_status_message="Installing base frontend packages",
1328
+ )
1329
+
1330
+ development_deps: set[str] = set()
1331
+ for plugin in config.plugins:
1332
+ development_deps.update(plugin.get_frontend_development_dependencies())
1333
+ packages.update(plugin.get_frontend_dependencies())
1334
+
1335
+ if development_deps:
1336
+ run_package_manager(
1332
1337
  [
1333
1338
  primary_package_manager,
1334
1339
  "add",
1335
1340
  "--legacy-peer-deps",
1336
1341
  "-d",
1337
- constants.Tailwind.VERSION,
1338
- *[
1339
- plugin if isinstance(plugin, str) else plugin.get("name")
1340
- for plugin in (config.tailwind or {}).get("plugins", [])
1341
- ],
1342
+ *development_deps,
1342
1343
  ],
1343
- fallbacks=fallbacks,
1344
- analytics_enabled=True,
1345
- show_status_message="Installing tailwind",
1346
- cwd=get_web_dir(),
1347
- shell=constants.IS_WINDOWS,
1348
- env=env,
1344
+ show_status_message="Installing frontend development dependencies",
1349
1345
  )
1350
1346
 
1351
1347
  # Install custom packages defined in frontend_packages
1352
- if len(packages) > 0:
1353
- processes.run_process_with_fallbacks(
1348
+ if packages:
1349
+ run_package_manager(
1354
1350
  [primary_package_manager, "add", "--legacy-peer-deps", *packages],
1355
- fallbacks=fallbacks,
1356
- analytics_enabled=True,
1357
1351
  show_status_message="Installing frontend packages from config and components",
1358
- cwd=get_web_dir(),
1359
- shell=constants.IS_WINDOWS,
1360
- env=env,
1361
1352
  )
1362
1353
 
1363
1354
 
@@ -1931,66 +1922,6 @@ def get_init_cli_prompt_options() -> list[Template]:
1931
1922
  ]
1932
1923
 
1933
1924
 
1934
- def initialize_main_module_index_from_generation(app_name: str, generation_hash: str):
1935
- """Overwrite the `index` function in the main module with reflex.build generated code.
1936
-
1937
- Args:
1938
- app_name: The name of the app.
1939
- generation_hash: The generation hash from reflex.build.
1940
-
1941
- Raises:
1942
- GeneratedCodeHasNoFunctionDefsError: If the fetched code has no function definitions
1943
- (the refactored reflex code is expected to have at least one root function defined).
1944
- """
1945
- # Download the reflex code for the generation.
1946
- url = constants.Templates.REFLEX_BUILD_CODE_URL.format(
1947
- generation_hash=generation_hash
1948
- )
1949
- resp = net.get(url)
1950
- while resp.status_code == httpx.codes.SERVICE_UNAVAILABLE:
1951
- console.debug("Waiting for the code to be generated...")
1952
- time.sleep(1)
1953
- resp = net.get(url)
1954
- resp.raise_for_status()
1955
-
1956
- # Determine the name of the last function, which renders the generated code.
1957
- defined_funcs = re.findall(r"def ([a-zA-Z_]+)\(", resp.text)
1958
- if not defined_funcs:
1959
- raise GeneratedCodeHasNoFunctionDefsError(
1960
- f"No function definitions found in generated code from {url!r}."
1961
- )
1962
- render_func_name = defined_funcs[-1]
1963
-
1964
- def replace_content(_match: re.Match) -> str:
1965
- return "\n".join(
1966
- [
1967
- resp.text,
1968
- "",
1969
- "def index() -> rx.Component:",
1970
- f" return {render_func_name}()",
1971
- "",
1972
- "",
1973
- ],
1974
- )
1975
-
1976
- main_module_path = Path(app_name, app_name + constants.Ext.PY)
1977
- main_module_code = main_module_path.read_text()
1978
-
1979
- main_module_code = re.sub(
1980
- r"def index\(\).*:\n([^\n]\s+.*\n+)+",
1981
- replace_content,
1982
- main_module_code,
1983
- )
1984
- # Make the app use light mode until flexgen enforces the conversion of
1985
- # tailwind colors to radix colors.
1986
- main_module_code = re.sub(
1987
- r"app\s*=\s*rx\.App\(\s*\)",
1988
- 'app = rx.App(theme=rx.theme(color_mode="light"))',
1989
- main_module_code,
1990
- )
1991
- main_module_path.write_text(main_module_code)
1992
-
1993
-
1994
1925
  def format_address_width(address_width: str | None) -> int | None:
1995
1926
  """Cast address width to an int.
1996
1927
 
@@ -10,6 +10,7 @@ import json
10
10
  import logging
11
11
  import re
12
12
  import subprocess
13
+ import sys
13
14
  import typing
14
15
  from collections.abc import Callable, Iterable, Sequence
15
16
  from fileinput import FileInput
@@ -387,13 +388,22 @@ def _extract_class_props_as_ast_nodes(
387
388
  if isinstance(default, Var):
388
389
  default = default._decode()
389
390
 
391
+ modules = {cls.__module__ for cls in target_class.__mro__}
392
+ available_vars = {}
393
+ for module in modules:
394
+ available_vars.update(sys.modules[module].__dict__)
395
+
390
396
  kwargs.append(
391
397
  (
392
398
  ast.arg(
393
399
  arg=name,
394
400
  annotation=ast.Name(
395
401
  id=OVERWRITE_TYPES.get(
396
- name, _get_type_hint(value, type_hint_globals)
402
+ name,
403
+ _get_type_hint(
404
+ value,
405
+ type_hint_globals | available_vars,
406
+ ),
397
407
  )
398
408
  ),
399
409
  ),
@@ -1227,7 +1237,7 @@ class PyiGenerator:
1227
1237
  continue
1228
1238
  subprocess.run(["git", "checkout", changed_file])
1229
1239
 
1230
- if cpu_count() == 1 or len(file_targets) < 5:
1240
+ if True:
1231
1241
  self._scan_files(file_targets)
1232
1242
  else:
1233
1243
  self._scan_files_multiprocess(file_targets)
reflex/utils/types.py CHANGED
@@ -254,6 +254,20 @@ def is_optional(cls: GenericType) -> bool:
254
254
  return is_union(cls) and type(None) in get_args(cls)
255
255
 
256
256
 
257
+ def is_classvar(a_type: Any) -> bool:
258
+ """Check if a type is a ClassVar.
259
+
260
+ Args:
261
+ a_type: The type to check.
262
+
263
+ Returns:
264
+ Whether the type is a ClassVar.
265
+ """
266
+ return a_type is ClassVar or (
267
+ type(a_type) is _GenericAlias and a_type.__origin__ is ClassVar
268
+ )
269
+
270
+
257
271
  def true_type_for_pydantic_field(f: ModelField):
258
272
  """Get the type for a pydantic field.
259
273
 
@@ -982,7 +996,7 @@ def typehint_issubclass(
982
996
  Returns:
983
997
  Whether the type hint is a subclass of the other type hint.
984
998
  """
985
- if possible_superclass is Any:
999
+ if possible_subclass is possible_superclass or possible_superclass is Any:
986
1000
  return True
987
1001
  if possible_subclass is Any:
988
1002
  return treat_any_as_subtype_of_everything
reflex/vars/base.py CHANGED
@@ -88,6 +88,12 @@ SEQUENCE_TYPE = TypeVar("SEQUENCE_TYPE", bound=Sequence)
88
88
 
89
89
  warnings.filterwarnings("ignore", message="fields may not start with an underscore")
90
90
 
91
+ _PYDANTIC_VALIDATE_VALUES = "__pydantic_validate_values__"
92
+
93
+
94
+ def _pydantic_validator(*args, **kwargs):
95
+ return None
96
+
91
97
 
92
98
  @dataclasses.dataclass(
93
99
  eq=False,
@@ -233,11 +239,11 @@ class VarData:
233
239
  deps = [dep for var_data in all_var_datas for dep in var_data.deps]
234
240
 
235
241
  positions = list(
236
- {
242
+ dict.fromkeys(
237
243
  var_data.position
238
244
  for var_data in all_var_datas
239
245
  if var_data.position is not None
240
- }
246
+ )
241
247
  )
242
248
  if positions:
243
249
  if len(positions) > 1:
@@ -363,11 +369,26 @@ def can_use_in_object_var(cls: GenericType) -> bool:
363
369
  )
364
370
 
365
371
 
372
+ class MetaclassVar(type):
373
+ """Metaclass for the Var class."""
374
+
375
+ def __setattr__(cls, name: str, value: Any):
376
+ """Set an attribute on the class.
377
+
378
+ Args:
379
+ name: The name of the attribute.
380
+ value: The value of the attribute.
381
+ """
382
+ super().__setattr__(
383
+ name, value if name != _PYDANTIC_VALIDATE_VALUES else _pydantic_validator
384
+ )
385
+
386
+
366
387
  @dataclasses.dataclass(
367
388
  eq=False,
368
389
  frozen=True,
369
390
  )
370
- class Var(Generic[VAR_TYPE]):
391
+ class Var(Generic[VAR_TYPE], metaclass=MetaclassVar):
371
392
  """Base class for immutable vars."""
372
393
 
373
394
  # The name of the var.
@@ -2694,6 +2715,27 @@ if TYPE_CHECKING:
2694
2715
  BASE_STATE = TypeVar("BASE_STATE", bound=BaseState)
2695
2716
 
2696
2717
 
2718
+ class _ComputedVarDecorator(Protocol):
2719
+ """A protocol for the ComputedVar decorator."""
2720
+
2721
+ @overload
2722
+ def __call__(
2723
+ self,
2724
+ fget: Callable[[BASE_STATE], Coroutine[Any, Any, RETURN_TYPE]],
2725
+ ) -> AsyncComputedVar[RETURN_TYPE]: ...
2726
+
2727
+ @overload
2728
+ def __call__(
2729
+ self,
2730
+ fget: Callable[[BASE_STATE], RETURN_TYPE],
2731
+ ) -> ComputedVar[RETURN_TYPE]: ...
2732
+
2733
+ def __call__(
2734
+ self,
2735
+ fget: Callable[[BASE_STATE], Any],
2736
+ ) -> ComputedVar[Any]: ...
2737
+
2738
+
2697
2739
  @overload
2698
2740
  def computed_var(
2699
2741
  fget: None = None,
@@ -2704,7 +2746,20 @@ def computed_var(
2704
2746
  interval: datetime.timedelta | int | None = None,
2705
2747
  backend: bool | None = None,
2706
2748
  **kwargs,
2707
- ) -> Callable[[Callable[[BASE_STATE], RETURN_TYPE]], ComputedVar[RETURN_TYPE]]: ... # pyright: ignore [reportInvalidTypeVarUse]
2749
+ ) -> _ComputedVarDecorator: ...
2750
+
2751
+
2752
+ @overload
2753
+ def computed_var(
2754
+ fget: Callable[[BASE_STATE], Coroutine[Any, Any, RETURN_TYPE]],
2755
+ initial_value: RETURN_TYPE | types.Unset = types.Unset(),
2756
+ cache: bool = True,
2757
+ deps: list[str | Var] | None = None,
2758
+ auto_deps: bool = True,
2759
+ interval: datetime.timedelta | int | None = None,
2760
+ backend: bool | None = None,
2761
+ **kwargs,
2762
+ ) -> AsyncComputedVar[RETURN_TYPE]: ...
2708
2763
 
2709
2764
 
2710
2765
  @overload
reflex/vars/object.py CHANGED
@@ -144,6 +144,14 @@ class ObjectVar(Var[OBJECT_TYPE], python_types=Mapping):
144
144
 
145
145
  items = entries
146
146
 
147
+ def length(self) -> NumberVar[int]:
148
+ """Get the length of the object.
149
+
150
+ Returns:
151
+ The length of the object.
152
+ """
153
+ return self.keys().length()
154
+
147
155
  def merge(self, other: ObjectVar):
148
156
  """Merge two objects.
149
157
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: reflex
3
- Version: 0.7.12a1
3
+ Version: 0.7.13
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
@@ -30,7 +30,7 @@ Requires-Dist: psutil<8.0,>=7.0.0
30
30
  Requires-Dist: pydantic<3.0,>=1.10.21
31
31
  Requires-Dist: python-multipart<1.0,>=0.0.20
32
32
  Requires-Dist: python-socketio<6.0,>=5.12.0
33
- Requires-Dist: redis<6.0,>=5.2.1
33
+ Requires-Dist: redis<7.0,>=5.2.1
34
34
  Requires-Dist: reflex-hosting-cli>=0.1.47
35
35
  Requires-Dist: rich<15,>=13
36
36
  Requires-Dist: sqlmodel<0.1,>=0.0.24
@@ -1,31 +1,30 @@
1
- reflex/__init__.py,sha256=viEt38jc1skwOUBwwlwPL02hcGrm9xNQzKExVftZEx4,10365
2
- reflex/__init__.pyi,sha256=h9ltlhaz1dySsNYpUkN_VCjEzHGfb1h18ThYh15QjyU,11358
1
+ reflex/__init__.py,sha256=wMrUAcxHI0Th4EwHIVm9G5zT-zNgO1JX6yWejx0IvvQ,10380
2
+ reflex/__init__.pyi,sha256=SDnppfexuPej7E5zD2fHKq1gppvvZHBUqqS0tX2Wj-g,11391
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=HBIynH7dEvNVoW6ETQmWg-EeI0OibAtBcu1fOhmLj7U,73964
5
+ reflex/app.py,sha256=ZEliICmLeN38l-xbwOe7L0EM9LpQwKZ4feC28aChQdc,76885
6
6
  reflex/assets.py,sha256=PLTKAMYPKMZq8eWXKX8uco6NZ9IiPGWal0bOPLUmU7k,3364
7
7
  reflex/base.py,sha256=U7i_ijkbSLUDm1TlTYYZEm5P6ZiVO1aIT1MJKXO6V1o,3881
8
- reflex/config.py,sha256=AT8IfbScDY7hrZHwpJDMDlGKxpiYkGPjxCVjIaCSa98,35594
9
- reflex/event.py,sha256=Xk7AI976Mjjqd7h8mky2-WdF-HDJM1PEtYmUfNi46oQ,65045
8
+ reflex/config.py,sha256=JCO8MAHbv7YkTFVPMTLb6qwAkQUssJfUMIm-ih3z3ds,37760
9
+ reflex/event.py,sha256=iNLfsA1JdppsX9vqh0u0YT0c1JPh_46soSYpg4k3S2U,66897
10
10
  reflex/model.py,sha256=eOWc157txBIUmYMZqQeKKdn2dm4Tsf8h8CbqeLXvjeg,17577
11
11
  reflex/page.py,sha256=mqioadLDsABvfNqdLbxvUKqi1gulSKddMihZe3pjtdc,2678
12
12
  reflex/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
13
  reflex/reflex.py,sha256=LtcCxgPkGkE6CrJjyBAr77h1IpQTfuxrrIyPvVUE1I8,21652
14
14
  reflex/route.py,sha256=nn_hJwtQdjiqH_dHXfqMGWKllnyPQZTSR-KWdHDhoOs,4210
15
- reflex/state.py,sha256=OKbhcFVNNtNsL6e7Z3IUC5D4zHqQKbuaE31fjcmHSUA,90195
15
+ reflex/state.py,sha256=QQDoC91fKHn6eOdzC-2iaNV3W-v0b9I81eip2V2vmR4,90727
16
16
  reflex/style.py,sha256=8ciwcReoKSrPSwoteXJwv7YTK514tf7jrJ5RfqztmvA,13186
17
17
  reflex/testing.py,sha256=XdPGNECAQxJG5txIwlT6UXQoSIgHssGL4jtZgWJKWLY,36301
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
21
- reflex/.templates/jinja/app/rxconfig.py.jinja2,sha256=Scfnv_vZXIPQcz8zNIa4FmjEym1U5VMMWX4lryUMi10,74
21
+ reflex/.templates/jinja/app/rxconfig.py.jinja2,sha256=WjP8Yqcz7UAAB3PPbOZRG7YW3Os2n46pgNWEMi1Nox4,119
22
22
  reflex/.templates/jinja/custom_components/README.md.jinja2,sha256=qA4XZDxOTc2gRIG7CO1VvVawOgThwZqU2RZvRTPhXwE,127
23
23
  reflex/.templates/jinja/custom_components/__init__.py.jinja2,sha256=z5n2tvoS7iNDaM6mUGKETdpGlC0oA1_rrYURu7O_xpk,32
24
24
  reflex/.templates/jinja/custom_components/demo_app.py.jinja2,sha256=ipbKtObNqQLcwbFowod_bSWW4bttW_8bNyTXl7JL1zg,826
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=oHjAp0P-lzl5GLuXlk87JQw6NoDZr3yIn1Bm8O1Vf5Q,2293
29
28
  reflex/.templates/jinja/web/pages/_app.js.jinja2,sha256=8vfyoxj0ulu7ADt4aM0ik_u5YUZum1Uxdt4j0fFj9BI,1332
30
29
  reflex/.templates/jinja/web/pages/_document.js.jinja2,sha256=LMzcXhQMR8RemQ_BDNADUPayIYBScHB8W8n06-jeqjQ,166
31
30
  reflex/.templates/jinja/web/pages/base_page.js.jinja2,sha256=-Jykv29ZqzsQyyRe_iR2gUD5ac-X5RhDrGs0-diOMOA,400
@@ -42,12 +41,11 @@ reflex/.templates/jinja/web/utils/theme.js.jinja2,sha256=OSpBMh0Z9tTeqb10js4ZtnE
42
41
  reflex/.templates/web/.gitignore,sha256=3tT0CtVkCL09D_Y3Hd4myUgGcBuESeavCa0WHU5ifJ4,417
43
42
  reflex/.templates/web/jsconfig.json,sha256=rhQZZRBYxBWclFYTeU6UakzbGveM4qyRQZUpEAVhyqY,118
44
43
  reflex/.templates/web/next.config.js,sha256=ZpGOqo9wHEbt0S08G70VfUNUjFe79UXo7Cde8X8V10E,118
45
- reflex/.templates/web/postcss.config.js,sha256=pWczoUW-Y0gYUuHAW4ZK0hQNWTcMC2UGu2i-sQ-YqUs,109
44
+ reflex/.templates/web/postcss.config.js,sha256=Ci60FwzThCR5bpVPLxj_-caGhJXEJcQ_CHD1ljnR4R4,88
46
45
  reflex/.templates/web/components/reflex/radix_themes_color_mode_provider.js,sha256=G-g5gwpbGegMSWo64LIT76OSHaxLMv-V68nP0cockks,1844
47
46
  reflex/.templates/web/components/shiki/code.js,sha256=4Es1pxsr-lX4hTQ5mglrwwC6O_SI-z-O60k03z8VFzQ,1144
48
- reflex/.templates/web/styles/tailwind.css,sha256=wGOoICTy1G0e5bWZ4LYOVgRa3ZT7M44tC4g6CKh6ZPo,112
49
47
  reflex/.templates/web/utils/client_side_routing.js,sha256=cOu4wUHDQtGl1yo5goxljZ94SLZLyr9R3S9Rehcvjio,1475
50
- reflex/.templates/web/utils/state.js,sha256=IOA9QGupgpViVCn1gVmLiNPEi_oXdQIT73qm_0y3xgo,31493
48
+ reflex/.templates/web/utils/state.js,sha256=4Fw-hIYojYRs1W_Welud_1bwAjur0lUoYZ9gHKme68c,31508
51
49
  reflex/.templates/web/utils/helpers/dataeditor.js,sha256=pG6MgsHuStDR7-qPipzfiK32j9bKDBa-4hZ0JSUo4JM,1623
52
50
  reflex/.templates/web/utils/helpers/debounce.js,sha256=xGhtTRtS_xIcaeqnYVvYJNseLgQVk-DW-eFiHJYO9As,528
53
51
  reflex/.templates/web/utils/helpers/paste.js,sha256=ef30HsR83jRzzvZnl8yV79yqFP8TC_u8SlN99cCS_OM,1799
@@ -58,12 +56,12 @@ reflex/app_mixins/lifespan.py,sha256=b8jTlg7WyaUw4QIujcmJBXAnVBW8Uoi6l7qgWNLjUD0
58
56
  reflex/app_mixins/middleware.py,sha256=3OTCEF0rjhd2yTSMCS7wi7J50BxZ8ztCg5K7zfdehhs,2828
59
57
  reflex/app_mixins/mixin.py,sha256=si0Pa0U1EtJc-a6iZntqU9B7_NrPILwrGFxk9mKHBCE,317
60
58
  reflex/compiler/__init__.py,sha256=r8jqmDSFf09iV2lHlNhfc9XrTLjNxfDNwPYlxS4cmHE,27
61
- reflex/compiler/compiler.py,sha256=Ae3C2CnDl4EJRQZtMmXy2z9uGSsiQtsjGa95TEegKeU,28690
62
- reflex/compiler/templates.py,sha256=NX3YUMVGGyDsy2JuDv-AmklMM0pKJHLPsIpdqamgqRQ,5854
63
- reflex/compiler/utils.py,sha256=nFkAyJK0anKVdknQMSsmB9z0FnsZIr4myl5s0qXvPHI,16067
59
+ reflex/compiler/compiler.py,sha256=6vU02LfL9flLiViMNR6lfYuPzNNXk4hJFg6wgLCASEg,27593
60
+ reflex/compiler/templates.py,sha256=SKFIJtL_ozEvEHhiMj34tBwBN1CWSYy_-VzlojZMG44,6015
61
+ reflex/compiler/utils.py,sha256=l5ASvyd_bBvzvwwAZf3wvm0jeR8k_Qp8kprIEy5BPt8,16483
64
62
  reflex/components/__init__.py,sha256=zbIXThv1WPI0FdIGf9G9RAmGoCRoGy7nHcSZ8K5D5bA,624
65
63
  reflex/components/__init__.pyi,sha256=qoj1zIWaitcZOGcJ6k7wuGJk_GAJCE9Xtx8CeRVrvoE,861
66
- reflex/components/component.py,sha256=mJFo-j4onl8Dvl-_8IG3Ic5q3mr-eXzAqWkEyzpAAnU,89779
64
+ reflex/components/component.py,sha256=mtKzyhu9bnMVotki6-VHjrjIS5Un_QAayc9rPBKQPgs,98490
67
65
  reflex/components/dynamic.py,sha256=HKeesVZtz8_d-4I9VU0NQaXZrnSstQzGItu8XgWHkCI,7408
68
66
  reflex/components/literals.py,sha256=hogLnwTJxFJODIvqihg-GD9kFZVsEBDoYzaRit56Nuk,501
69
67
  reflex/components/props.py,sha256=8F2ZNeF16BDiTh-E4F-U_vks41BMJgmkTM7xbjGvfOA,2593
@@ -106,6 +104,7 @@ reflex/components/core/cond.py,sha256=WuGPyVF-0mHauBRX7LGolEF5IAI7j0IiEJo55JG6Y1
106
104
  reflex/components/core/debounce.py,sha256=0Bzszlfr-bmfFlXeqCJ-E1MQA178xf-LnAIgTix8zh8,4955
107
105
  reflex/components/core/debounce.pyi,sha256=Uqsxwz7gd_RpVV-9BIJ1wH0xyIlnJHlZIqzZK969N8s,3036
108
106
  reflex/components/core/foreach.py,sha256=Uc0UZ6dOzh4Ghe2li6_nnvCYnSDQDSN7lh91xVj_m08,6075
107
+ reflex/components/core/helmet.pyi,sha256=G6VLHqyhhnX7CeV8KqZJCsxApAoNZ3Cr8h9MCZO5lKs,2413
109
108
  reflex/components/core/html.py,sha256=RnFLDLSNqNz3ypSEH5CRV3YcjGzuZ33ok2qSYd9LzQQ,1299
110
109
  reflex/components/core/html.pyi,sha256=YA2PoFLODvijJBmPcthOFHq8FhC86xV-ETUxqBu8zPg,8966
111
110
  reflex/components/core/match.py,sha256=qCLSQ70Pcsv3pSAEYfHAjahDazSGDSIBQ2CwkBshKrg,8909
@@ -117,13 +116,13 @@ reflex/components/core/upload.pyi,sha256=9TSnbrV-mazcZvSrNylOmLlF1aO6XkYqeUrhMpe
117
116
  reflex/components/core/layout/__init__.py,sha256=znldZaj_NGt8qCZDG70GMwjMTskcvCf_2N_EjCAHwdc,30
118
117
  reflex/components/datadisplay/__init__.py,sha256=L8pWWKNHWdUD2fbZRoEKjd_8c_hpDdGYO463hwkoIi4,438
119
118
  reflex/components/datadisplay/__init__.pyi,sha256=rYMwO_X4NvUex6IL2MMTnhdFRp8Lz5zweMwXaW_l7nc,588
120
- reflex/components/datadisplay/code.py,sha256=5tO--QgPJj3-hBNjQ3SGNgLYpjBwTwtOUnWM5oLU4Kg,14674
119
+ reflex/components/datadisplay/code.py,sha256=3oyFRSiDWerzofpNTkBQLpGHNvYvQkGGw0UcCcXgVU4,14684
121
120
  reflex/components/datadisplay/code.pyi,sha256=G-0bUnhe5WLDGm-q4a7bKPVFhGh5B7tTKxwGt2wcUxs,41417
122
121
  reflex/components/datadisplay/dataeditor.py,sha256=Y1zWMVF-nZARx5jk8ayuOU6bdDAvwjVn3N62JtGDeQA,13550
123
122
  reflex/components/datadisplay/dataeditor.pyi,sha256=QmMm1Leg_6V5L1GwCCHb_1Ry9UH7nTisTt3c2GI9ZbE,12227
124
123
  reflex/components/datadisplay/logo.py,sha256=5YeXXIg19jJdY-KMP1_WJNmrh0oVSy4axy8Pbp275es,1981
125
- reflex/components/datadisplay/shiki_code_block.py,sha256=hC-12e_0Lmm5Mrt2GeUyevSNwvieDRsUSbV330fp6Zg,23752
126
- reflex/components/datadisplay/shiki_code_block.pyi,sha256=x8mLCfsjzGM9fgz9yh688ESzICKl4I99Y6UsjC3IyLE,56936
124
+ reflex/components/datadisplay/shiki_code_block.py,sha256=uAe7ry1Jfd0dfa1xC-b9BR16yYN1xhkOcLz4q6jzXto,24414
125
+ reflex/components/datadisplay/shiki_code_block.pyi,sha256=L85grVoLgnU1gKUoC-GXzd1mdnybNK5fR_PzOtAUL4U,56985
127
126
  reflex/components/el/__init__.py,sha256=nfIjf_cyieEmxptKjA6wRjoongswXv4X3n6vDmsdarI,416
128
127
  reflex/components/el/__init__.pyi,sha256=cnMxw2_gNMZoDCEuglf04M-jRjupFzTnoKf0s7szIqU,10898
129
128
  reflex/components/el/element.py,sha256=stGVO6A2waCHq2CGQqR_g798hDKkuSZerwB0tYfZpRE,582
@@ -136,7 +135,7 @@ reflex/components/el/elements/__init__.py,sha256=Ocexkpl7YRpdpL6YPsG_QgxYWO0dx1g
136
135
  reflex/components/el/elements/__init__.pyi,sha256=uuwnUtPo4hPTByt8qzbdZT-_cOSPiTTaw5BXN2H2kpM,11129
137
136
  reflex/components/el/elements/base.py,sha256=4jnwyCQUHvWcIfwiIWVCiIC_jbwZlkAiOgx73t7tdw8,3075
138
137
  reflex/components/el/elements/base.pyi,sha256=W_hG99LyFcnlRHtSxRZur3o6x33zvMwpp498mleamWw,10096
139
- reflex/components/el/elements/forms.py,sha256=cgK6pEhQl0SycMF-eW5X8IXBhsYocBvI-a0-bikp0-o,21549
138
+ reflex/components/el/elements/forms.py,sha256=6hOTGPPfJOH605YjIWZZ0FAPMi4eeKsk9c0DxKj6ZTs,21596
140
139
  reflex/components/el/elements/forms.pyi,sha256=L18Sko0gx_lvtl4DMfBbXNd9WbAn7BFUN-tRBSCr7SM,168738
141
140
  reflex/components/el/elements/inline.py,sha256=q3Ku_x8L9NaXrYQovCfkWwZ5AfXG0VyhGN_OT73kA0Y,4126
142
141
  reflex/components/el/elements/inline.pyi,sha256=OhRYq7qzJm_KZPkzPs8DEm2zE9HtXOonhEbDwJgnFTQ,232592
@@ -158,8 +157,8 @@ reflex/components/gridjs/__init__.py,sha256=xJwDm1AZ70L5-t9LLqZwGUtDpijbf1KuMYDT
158
157
  reflex/components/gridjs/datatable.py,sha256=ZmpvWnR4PSAF62V0qUPVZyheHl_wPEkUaZRIB0Vuv4c,4220
159
158
  reflex/components/gridjs/datatable.pyi,sha256=YAfCTuxtKgRtvXOr6OuWWoMQshkt5588FabWK8JbOLY,5227
160
159
  reflex/components/lucide/__init__.py,sha256=EggTK2MuQKQeOBLKW-mF0VaDK9zdWBImu1HO2dvHZbE,73
161
- reflex/components/lucide/icon.py,sha256=QIto2XB-z3lSRhls_Cu8n0JiZ2dKcDxPRxCG_7D4-vs,34573
162
- reflex/components/lucide/icon.pyi,sha256=OnKrrMYBZb9HeAf6_nN7_3_9Nuw-weMVJHtwt60eBvU,37488
160
+ reflex/components/lucide/icon.py,sha256=rhR69gPP2RK4EGt8B_JPTpb4YnuGvYT223dn28hlHvo,34604
161
+ reflex/components/lucide/icon.pyi,sha256=eWrL9Zfp8yT6mbiKnx2t2tupmaHOivrkCO3NpnUd5RI,37519
163
162
  reflex/components/markdown/__init__.py,sha256=Dfl1At5uYoY7H4ufZU_RY2KOGQDLtj75dsZ2BTqqAns,87
164
163
  reflex/components/markdown/markdown.py,sha256=iB43ERClrdBNRiXlv0ju7KXSsVWsMQsG-uHB_5vuV5c,15416
165
164
  reflex/components/markdown/markdown.pyi,sha256=opz6B5rpuJtgSZBuFphdl2irZnzPkXsbRGvKqpmDhZs,4344
@@ -176,19 +175,19 @@ reflex/components/next/link.pyi,sha256=H-95F0pJtu_f8dmRwuFZjtl9QnG96JVI2mb6sUMY3
176
175
  reflex/components/next/video.py,sha256=zHT-wdzLauLxZizCjI8aoajj75wR1lBFIo841R2gD0k,963
177
176
  reflex/components/next/video.pyi,sha256=4Qu7k3n-BimL__-X43IjGQB6FIH7IHnZPiTSECXgPJA,2539
178
177
  reflex/components/plotly/__init__.py,sha256=6B_woBJhkrVA9O_AbOTbsA_SxWsqjicYHmLA9FLjGfU,650
179
- reflex/components/plotly/plotly.py,sha256=mhTNW5VkflHbZ8aYFrQ41m2mTRo356rPGKtr90PlfVQ,14840
180
- reflex/components/plotly/plotly.pyi,sha256=xiv43RpHARluOM_h76MyiwXvMcLbksib6NQ_UV0L4Qw,47855
178
+ reflex/components/plotly/plotly.py,sha256=vip6efXCFYt1A5frZqdYtk18LfHANltstKM8AGT0cyM,14848
179
+ reflex/components/plotly/plotly.pyi,sha256=l4zEdUFf_b0RrLOY5nXrn_gPnYhUb46sqbbH-Dh_8rI,47862
181
180
  reflex/components/radix/__init__.py,sha256=fRsLvIO3MrTtPOXtmnxYDB9phvzlcbyB_utgpafYMho,474
182
181
  reflex/components/radix/__init__.pyi,sha256=YpWw_k35yv_Yq_0RZNCb52fJZ3dANWAnQllhVoVCWEE,3988
183
182
  reflex/components/radix/primitives/__init__.py,sha256=R2sdZJqQCYaLScGkXnXDKAjVgV5MidceemooEUtvBt4,443
184
183
  reflex/components/radix/primitives/__init__.pyi,sha256=C3ryDDEVq8kZp2PBm-_onHKXumFnKD__B2puDbO4WjE,401
185
- reflex/components/radix/primitives/accordion.py,sha256=ZgIZgS8EKWdx9DwMFawHg_GTFHGJpjW92QVzjmZ7d3U,16110
184
+ reflex/components/radix/primitives/accordion.py,sha256=_2leThWrA7PJ3zmf5QkMQy_wrCyCHOooajsgbqA3qow,16110
186
185
  reflex/components/radix/primitives/accordion.pyi,sha256=O7BhVr82UiX7siQUVhn8cNw8SKuTMvUSvz4d3ekrmkA,28234
187
186
  reflex/components/radix/primitives/base.py,sha256=uTfwrnn5ZNhRcpii1-w8YwYhtrRbz9ZXo_61fyWYjA4,816
188
187
  reflex/components/radix/primitives/base.pyi,sha256=ZfszIoUQRMjfkl3vyHskA8aXnWeM57b-ftv50PC_AII,4687
189
- reflex/components/radix/primitives/drawer.py,sha256=VMTk6XWfbi5OGgFKn-NEKKSkXYyGj6z3hDKsSGvvKck,9262
188
+ reflex/components/radix/primitives/drawer.py,sha256=Nxd745cuNFsiZIZh33gJjm5RfGwrbv-yeSEkHa6OI-8,9262
190
189
  reflex/components/radix/primitives/drawer.pyi,sha256=h2wmRtnOFG3OGgEi_u-hM3yFxcSNDtelKzPkLxSKeyk,30027
191
- reflex/components/radix/primitives/form.py,sha256=WSvQaGHa1WN69esSlQ4fKJmE5MR7QsHbefmUkcYTtUo,4831
190
+ reflex/components/radix/primitives/form.py,sha256=X4ym8R8amJOdflDel0A-Lt1B-InR91z3Vz9KuS3dxRg,4831
192
191
  reflex/components/radix/primitives/form.pyi,sha256=MGdr8Y4dxA9Ku0lBlFNWqsWH_6FfRRdSjr3nKy2sOFI,47384
193
192
  reflex/components/radix/primitives/progress.py,sha256=DnuZuOptFt4w_vcUx7ZnsgvuJG5bzrBSdeFC42yH530,3988
194
193
  reflex/components/radix/primitives/progress.pyi,sha256=edhc7e8ZDxqCHw0PWhrYKX5RcnS1xuepSKxslQcDPSk,16581
@@ -196,7 +195,7 @@ reflex/components/radix/primitives/slider.py,sha256=Ovkve45-lNUKKyY_f-GUa92NEccx
196
195
  reflex/components/radix/primitives/slider.pyi,sha256=O2QHE2XMjAMGYJgDljNIJDVw07qkDJ9dvF-6P5ySPKI,12588
197
196
  reflex/components/radix/themes/__init__.py,sha256=3ASzR_OrjkLXZ6CksGKIQPOcyYZ984NzXrn2UCIdxUc,492
198
197
  reflex/components/radix/themes/__init__.pyi,sha256=RVeS7TipR51MgmsWJStZwh4QxKBtOMtCguBtVbUJqX8,476
199
- reflex/components/radix/themes/base.py,sha256=Nv0pWJH5bAkInT8VYq-2hlgeNdoKsFqIZorTyfDuJJg,8689
198
+ reflex/components/radix/themes/base.py,sha256=SI8Z4xfBmwdoDbRoEaf8FViJuzZvFXYTnVrnU_8RAJY,8325
200
199
  reflex/components/radix/themes/base.pyi,sha256=09xp3m_X7u4ai2i-ot4U-6wIS212N1HJgpSOugOAqDE,24696
201
200
  reflex/components/radix/themes/color_mode.py,sha256=ZdRuFK7SrvB6Lq7dBTHSIku4y15BcCi53tmJl0lVlJA,6490
202
201
  reflex/components/radix/themes/color_mode.pyi,sha256=95Csgz57W-CwzYBZUKqoBvFhNQv_B_M03_15CLFl7GU,20960
@@ -232,7 +231,7 @@ reflex/components/radix/themes/components/dropdown_menu.py,sha256=QrDvo-HfQNCS5J
232
231
  reflex/components/radix/themes/components/dropdown_menu.pyi,sha256=jW4VxPvCGNFkQSsCZskMEovl3hEOoHNh5tnenmjNTJw,28736
233
232
  reflex/components/radix/themes/components/hover_card.py,sha256=TTasAH6aTkvZhQDxajSTADnqPm8Ep7j_WZqeiLDS9w8,3211
234
233
  reflex/components/radix/themes/components/hover_card.pyi,sha256=P249hkjutUJy2LtoXIhoVhqJcN6nPN8qUJBVyRGn_Lo,18729
235
- reflex/components/radix/themes/components/icon_button.py,sha256=_4cj_NIqtIIzEOdv8QbrHaSEjEQW6ThwHX0lpuHe40k,3007
234
+ reflex/components/radix/themes/components/icon_button.py,sha256=HQdkNBtE7QJnfQJN_3g3Hv2HPA1FWvqMXcFLnK2iJyg,3101
236
235
  reflex/components/radix/themes/components/icon_button.pyi,sha256=xhyNGxconrmjL2UPYzRoX5-sDaKNynXEUHaI-VwW7jA,13277
237
236
  reflex/components/radix/themes/components/inset.py,sha256=Pdj3dF1hW0RiZ_qEohXfJFa_ebbRKl7UaAqd05wUUpg,1155
238
237
  reflex/components/radix/themes/components/inset.pyi,sha256=HBGBl0Z6Gbc8ukiw51Ep6i4pdKbASlFMxvBDrxr3yl4,10982
@@ -268,8 +267,8 @@ reflex/components/radix/themes/components/tabs.py,sha256=9aSLPZe7zQDIxMIowqUN0pk
268
267
  reflex/components/radix/themes/components/tabs.pyi,sha256=fVp6CcTjsx0tvhX32Q6MpmQiTEpMeSi_QclUWElbegI,15624
269
268
  reflex/components/radix/themes/components/text_area.py,sha256=5jVvuH4wduAPFd6c2Th08AFolTE_QIgVmExSy5ttrTI,3423
270
269
  reflex/components/radix/themes/components/text_area.pyi,sha256=8YTw016D14lR-F6RW9Jhd2_-UHshPKKsIHdX7oIbbG4,14304
271
- reflex/components/radix/themes/components/text_field.py,sha256=RCMNIjDviZK3oSXaK_vJGebYV1h_njM3JObXW6Ghmiw,4168
272
- reflex/components/radix/themes/components/text_field.pyi,sha256=hAnWDcMec7IxGreO71W1UIoZH_j3tF52ksTbmqShfqI,33716
270
+ reflex/components/radix/themes/components/text_field.py,sha256=F8vDdpoY9n_whx_kZPCeHPyPZ86MJUnhQ1jjXccVDlQ,4268
271
+ reflex/components/radix/themes/components/text_field.pyi,sha256=ydNEkqRIrc9yka9PUKD6vebhGYe0FP5DYorY-3gK0O8,33873
273
272
  reflex/components/radix/themes/components/tooltip.py,sha256=3WPKrqh8cabXNT52kXPzuW9eryZKDRmR6nVHvPKlaI4,4384
274
273
  reflex/components/radix/themes/components/tooltip.pyi,sha256=mqO0ESK3nYhBT3_u9gjSWw2MC8-uLBgoMh0TjuLAF-8,6687
275
274
  reflex/components/radix/themes/layout/__init__.py,sha256=dbRNzJ9pag7luTO3saNvgKzozrGNJ02_Vn9r3SwJHN4,406
@@ -286,7 +285,7 @@ reflex/components/radix/themes/layout/flex.py,sha256=7p98u_YkIeBnbDsm4nFJpJUDJze
286
285
  reflex/components/radix/themes/layout/flex.pyi,sha256=HeQqsoT8ZEtGaUkMYy-zF0QvtapkOVZ2syWQhz-vZek,11530
287
286
  reflex/components/radix/themes/layout/grid.py,sha256=qHKR11Y-cT64dhzXoynKJr3Wr-R4hUNXRwPz8CthB2Y,1696
288
287
  reflex/components/radix/themes/layout/grid.pyi,sha256=n6PnZyZj8Gm5KS5RCHh7zpaPRk9vdY3Wt7RuXG1G5UA,12314
289
- reflex/components/radix/themes/layout/list.py,sha256=WKVPVOT5_46CQMhHf_mkNixui5WpQaFTE0pyC3jUl8I,5310
288
+ reflex/components/radix/themes/layout/list.py,sha256=PmDB_4fijO8O4P0F3C9uReRS0JuI7tImKt4LEHGxKQ4,5357
290
289
  reflex/components/radix/themes/layout/list.pyi,sha256=kgxi_DUcJtxiva8SkaWGvOblfGWyqXBvnAmBiYFgasQ,47743
291
290
  reflex/components/radix/themes/layout/section.py,sha256=ZSVYvC4Pq0z3oQMUBdhC4Hn8qZ__N86vifag3ZO99bs,624
292
291
  reflex/components/radix/themes/layout/section.pyi,sha256=9oQQTT4_RKg0vWffwj1d-gXxL6_Vql648v1aakiFwcU,9248
@@ -334,11 +333,11 @@ reflex/components/suneditor/editor.py,sha256=XzUZX4nRTv1Z9H5QIKGBWmeZpmZPdYGFhNh
334
333
  reflex/components/suneditor/editor.pyi,sha256=HArgt1IXTKD9qZmVmZFKadfUdEc_6HaN2lzGDRhRJno,8714
335
334
  reflex/components/tags/__init__.py,sha256=Pc0JU-Tv_W7KCsydXgbKmu7w2VtHNkI6Cx2hTkNhW_Q,152
336
335
  reflex/components/tags/cond_tag.py,sha256=YHxqq34PD-1D88YivO7kn7FsbW8SfPS2McNg7j_nncI,588
337
- reflex/components/tags/iter_tag.py,sha256=VfYy95D_rBk-0F58vUDgaWuqXWrdO2udDr06mcfdA6I,4487
336
+ reflex/components/tags/iter_tag.py,sha256=reHnUd3xXWTxwkHQ22fnpsWI5-IsdK-_8i7FRh3DjVg,4362
338
337
  reflex/components/tags/match_tag.py,sha256=3lba1H5pCcKkqxEHzM6DZb5s9s0yJLN4Se3vdhzar24,580
339
338
  reflex/components/tags/tag.py,sha256=BRPODHi1R5g4VwkYLztIUJBMyDgrGPZRqB-QP_u67jk,3665
340
339
  reflex/components/tags/tagless.py,sha256=qO7Gm4V0ITDyymHkyltfz53155ZBt-W_WIPDYy93ca0,587
341
- reflex/constants/__init__.py,sha256=I3NZFrnOpDaljU2VwkPIvp6V0odUZF6mia2tBxnPWbM,2220
340
+ reflex/constants/__init__.py,sha256=QAtyTYtH10D7680kp5EsKkTz1FeL9u6pvvXn-6hPFU8,2176
342
341
  reflex/constants/base.py,sha256=NtWZEJ1uEDpcwn1yNZ1ka6gDhbaJKWxlzvK55jIiAbE,8611
343
342
  reflex/constants/colors.py,sha256=n-FN7stNrvk5rCN0TAvE28dqwUeQZHue-b5q1CO0EyQ,2048
344
343
  reflex/constants/compiler.py,sha256=Var6JTLoVsbsG45VDgUeXlj5pnukeIeLw4v18h3U3Jw,5815
@@ -348,12 +347,11 @@ reflex/constants/event.py,sha256=8PWobGXnUIbkRS73dRiroj5BJw4C3sbo5AHAhJTZFyM,284
348
347
  reflex/constants/installer.py,sha256=qB-aXLuCFDxVGL7ToUtrIffTsiNJCZrMl4LLAI1PKSk,3540
349
348
  reflex/constants/route.py,sha256=YnLgsp0iYc1lFjQ-cEqTlSE5SEeaNkaWORBoUM0-taI,2079
350
349
  reflex/constants/state.py,sha256=6Mfr7xVcAZOj5aSy7kp0W6r8oTs7K30URgGDAAFLfPQ,294
351
- reflex/constants/style.py,sha256=EPgRYHhAlcrPUBc2HkDTdTj-Q0uDAXHlq8Sp6D35Zf4,475
352
350
  reflex/constants/utils.py,sha256=e1ChEvbHfmE_V2UJvCSUhD_qTVAIhEGPpRJSqdSd6PA,780
353
351
  reflex/custom_components/__init__.py,sha256=R4zsvOi4dfPmHc18KEphohXnQFBPnUCb50cMR5hSLDE,36
354
352
  reflex/custom_components/custom_components.py,sha256=_YIsOv3-ygomBFyj4Ku8QgjFZowVqQK51ipTwWhDkwo,20838
355
353
  reflex/experimental/__init__.py,sha256=tL-_HpKnP6HPqur1pQtpyq_B6tXkZPFadBhtT7-8Mm0,2521
356
- reflex/experimental/client_state.py,sha256=OVojc-a_Xm70_a7lkGeGAQ7ByLB6xipS5WISRqytEh8,9905
354
+ reflex/experimental/client_state.py,sha256=Sv5YrW75SJkma_sJ1w6Q2gCDc_JY7QI1ZO2pD-24iO4,9954
357
355
  reflex/experimental/hooks.py,sha256=CHYGrAE5t8riltrJmDFgJ4D2Vhmhw-y3B3MSGNlOQow,2366
358
356
  reflex/experimental/layout.py,sha256=IzyAu_M121IYsrsnctiXFbeXInVvKKb4GuyFJKXcJnQ,7533
359
357
  reflex/experimental/layout.pyi,sha256=xIy7UK6nvYrTM5hKss5Fws7G8aSs8mCND3FwAc5JWUs,25109
@@ -367,40 +365,44 @@ reflex/istate/wrappers.py,sha256=p8uuioXRbR5hperwbOJHUcWdu7hukLikQdoR7qrnKsI,909
367
365
  reflex/middleware/__init__.py,sha256=x7xTeDuc73Hjj43k1J63naC9x8vzFxl4sq7cCFBX7sk,111
368
366
  reflex/middleware/hydrate_middleware.py,sha256=1ch7bx2ZhojOR15b-LHD2JztrWCnpPJjTe8MWHJe-5Y,1510
369
367
  reflex/middleware/middleware.py,sha256=p5VVoIgQ_NwOg_GOY6g0S4fmrV76_VE1zt-HiwbMw-s,1158
368
+ reflex/plugins/__init__.py,sha256=JXrIp8EoZ3e4pTjDrg6yj2C6Kd6dj9TJsmsxdHRUtsI,274
369
+ reflex/plugins/base.py,sha256=pHrNVxi5KE9cAxJnx3ORYR8URXJK7ZMkOfuQDguBGb4,2720
370
+ reflex/plugins/tailwind_v3.py,sha256=pPFtBLPB6Bxg5bt0b-gJFcLckjhQFUxfhIG9OCqmFRA,7432
371
+ reflex/plugins/tailwind_v4.py,sha256=kbrWsy-bk7C4b3FvEZfYVuKj_YBx1ipMskbA6w9HDX0,7838
370
372
  reflex/utils/__init__.py,sha256=y-AHKiRQAhk2oAkvn7W8cRVTZVK625ff8tTwvZtO7S4,24
371
- reflex/utils/build.py,sha256=NxjFcGsRJygVzklNq4T3Crd-_zfUZXMQi3MSLGSMEjM,9135
373
+ reflex/utils/build.py,sha256=8n42GCwOrnCxlBk40lXqh1DEbZ8D24KRwwygYmNG7_Y,9142
372
374
  reflex/utils/codespaces.py,sha256=kEQ-j-jclTukFpXDlYgNp95kYMGDrQmP3VNEoYGZ1u4,3052
373
375
  reflex/utils/compat.py,sha256=aSJH_M6iomgHPQ4onQ153xh1MWqPi3HSYDzE68N6gZM,2635
374
- reflex/utils/console.py,sha256=XTIL7uK1Iz1pOb_CJWx7ikHG8hTNjn2lsirEqe0gEo0,9463
376
+ reflex/utils/console.py,sha256=7sSsidSWwobPIcxuCbn_jILvVxo63yedelO0ga8RQ70,9470
375
377
  reflex/utils/decorator.py,sha256=DVrlVGljV5OchMs-5_y1CbbqnCWlH6lv-dFko8yHxVY,1738
376
378
  reflex/utils/exceptions.py,sha256=Wwu7Ji2xgq521bJKtU2NgjwhmFfnG8erirEVN2h8S-g,8884
377
- reflex/utils/exec.py,sha256=in9Oig2k0tQrxUJhe-8GuMPUG4JGpcyEvUsvp-aPTqg,20368
379
+ reflex/utils/exec.py,sha256=5CgAvss3jt_sCaU_tEHcXMQTo4C7-xDEBsuSuZ8-lVA,20852
378
380
  reflex/utils/export.py,sha256=eRAVmXyOfCjaL0g4YwWy9f48YT21tfKtd8Evt37_sRY,2567
379
381
  reflex/utils/format.py,sha256=kd9B5Y_0-Rs0Zyq0ndpfXqSRBf3k-b_6jRfKb9-lkpo,21398
380
382
  reflex/utils/imports.py,sha256=NIWeNZPTBJM87OseXjff9XHnAaq4sz1fDbt3b0pTdJw,4090
381
383
  reflex/utils/lazy_loader.py,sha256=pdirbNnGfB-r21zgjzHk0c6vODXqKLn9vbJiP5Yr5nQ,4138
382
384
  reflex/utils/misc.py,sha256=pROvogdVRLrZx_5vD18PkMwRAkZnw09Nhb7_YdewUbw,731
383
385
  reflex/utils/net.py,sha256=T9QSPki13qQcwuZ771HEwdyL2UvA_mMbrM5bgHJnEOY,4073
384
- reflex/utils/path_ops.py,sha256=idGxUSJRKwYLLi7ppXkq3eV6rvAytJoO-n-FuLkwl3o,7604
385
- reflex/utils/prerequisites.py,sha256=ijmUA82b9csmoWCBqlIxng5W09NtdHtEi3_Hb8k2myg,67006
386
+ reflex/utils/path_ops.py,sha256=uv6b1Rh5xAZl-Q4sV1qvaWab-MIBnfSC2_GbaKq51Nk,8106
387
+ reflex/utils/prerequisites.py,sha256=Pz6rWwAX0nG_MKj7cllPx-kELmHy0Ou0n_Rg0mrVSmE,64581
386
388
  reflex/utils/processes.py,sha256=Xo9_lpYvS20XXZxjfRlhcVQSnYmMfePvTZ8gKA7XY04,16692
387
- reflex/utils/pyi_generator.py,sha256=grsbXehg4u7r5QDanMf24eufIWfcxvs4m9Sbz_QNBxk,45350
389
+ reflex/utils/pyi_generator.py,sha256=0e4SC2cBrrFl_lz5bWMRh8bEpq2-t3Vdh9lBe5EeDro,45688
388
390
  reflex/utils/redir.py,sha256=T1UfnJGeDVn1fwGpx8SqpEd4D6mlyMGXqdgOxXutfhc,1747
389
391
  reflex/utils/registry.py,sha256=ymBScatt5YiQz9tPYHCzSPs-X7z29hGuu2tlZG28YDQ,1877
390
392
  reflex/utils/serializers.py,sha256=AJ6txcEeui8fKOpG6jegv-ZH1AcPV72L3vmzNghW-YQ,13625
391
393
  reflex/utils/telemetry.py,sha256=kZeI_RjY32MTpx12Y5hMXyd6bkli9xAQsmbbIKuf0fg,6779
392
- reflex/utils/types.py,sha256=f8JAmVTf3qkuGW2M_VtqTVbQlTrrTWTdSWLvG8x7Bww,34164
394
+ reflex/utils/types.py,sha256=fVcvYc5DT-hvAsvYzgoItvH_YsurnJ-tnBlARgOqwNU,34507
393
395
  reflex/vars/__init__.py,sha256=2Kv6Oh9g3ISZFESjL1al8KiO7QBZUXmLKGMCBsP-DoY,1243
394
- reflex/vars/base.py,sha256=3poHqxogscO0jjJHAQwTHXBFCV1li0XAk2EVBjyrsvo,103181
396
+ reflex/vars/base.py,sha256=GnQG3eMxjCSf9IBzKXrQZzipxt7rw-TDE9R7FgbXFKg,104538
395
397
  reflex/vars/datetime.py,sha256=fEc68T0A6XYlAJ3AGteCIb_vDqgoO1O8tpjMzqlp9sc,5104
396
398
  reflex/vars/dep_tracking.py,sha256=fW9xDWOk-VM2kwBVlSe46KLfP3Gqj5Ni_SJx_IdR6-k,13840
397
399
  reflex/vars/function.py,sha256=0i-VkxHkDJmZtfQUwUfaF0rlS6WM8azjwQ8k7rEOkyk,13944
398
400
  reflex/vars/number.py,sha256=DlN9qx-kuGVq6Iiy3wxaKUxQ-HJ-CgdWpgoCpsKPefc,28174
399
- reflex/vars/object.py,sha256=ZK5_icrjzm38cFYP0NkEmxbKhnTlCmTydbN5XG4bkpA,17138
401
+ reflex/vars/object.py,sha256=eQuToqKV2XkcTZVxgpkFrPmLcHP8r1eqaMgYrWWCLdo,17324
400
402
  reflex/vars/sequence.py,sha256=cuvW7aKrM43WV4S8rJvZUL-PlMvlC4G0ZLK4j7xhkTI,55225
401
- scripts/hatch_build.py,sha256=xWcl8heJcCoujflpPnQqMXigE8gYPShERDsQ-HSJ9Pw,1285
402
- reflex-0.7.12a1.dist-info/METADATA,sha256=SrkMzUocigR19HXY2tovHbHlxtCdgvKIDXRJSJwZegc,11837
403
- reflex-0.7.12a1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
404
- reflex-0.7.12a1.dist-info/entry_points.txt,sha256=Rxt4dXc7MLBNt5CSHTehVPuSe9Xqow4HLX55nD9tQQ0,45
405
- reflex-0.7.12a1.dist-info/licenses/LICENSE,sha256=dw3zLrp9f5ObD7kqS32vWfhcImfO52PMmRqvtxq_YEE,11358
406
- reflex-0.7.12a1.dist-info/RECORD,,
403
+ scripts/hatch_build.py,sha256=-4pxcLSFmirmujGpQX9UUxjhIC03tQ_fIQwVbHu9kc0,1861
404
+ reflex-0.7.13.dist-info/METADATA,sha256=I0VyhqRBjz-eLS-wOazUW9ZyznzSakWsGNwTQqM6CJY,11835
405
+ reflex-0.7.13.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
406
+ reflex-0.7.13.dist-info/entry_points.txt,sha256=Rxt4dXc7MLBNt5CSHTehVPuSe9Xqow4HLX55nD9tQQ0,45
407
+ reflex-0.7.13.dist-info/licenses/LICENSE,sha256=dw3zLrp9f5ObD7kqS32vWfhcImfO52PMmRqvtxq_YEE,11358
408
+ reflex-0.7.13.dist-info/RECORD,,