reflex 0.7.12__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 +54 -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 +18 -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.12.dist-info → reflex-0.7.13.dist-info}/METADATA +2 -2
  48. {reflex-0.7.12.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.12.dist-info → reflex-0.7.13.dist-info}/WHEEL +0 -0
  54. {reflex-0.7.12.dist-info → reflex-0.7.13.dist-info}/entry_points.txt +0 -0
  55. {reflex-0.7.12.dist-info → reflex-0.7.13.dist-info}/licenses/LICENSE +0 -0
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.12
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=Qmc5wZ6ItPT8KR-A7X9Z6ooYM1dslc3WaOgvdlNFp5c,35788
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=mHPc3FXGQ2GI3siBp3qxJbm65_9Pu5FR4-65hy8i0FY,20514
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.12.dist-info/METADATA,sha256=eEaAmc9FvxsBbTGcFxf3svr8mhG4cSaCF9ZoVkmxgk8,11835
403
- reflex-0.7.12.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
404
- reflex-0.7.12.dist-info/entry_points.txt,sha256=Rxt4dXc7MLBNt5CSHTehVPuSe9Xqow4HLX55nD9tQQ0,45
405
- reflex-0.7.12.dist-info/licenses/LICENSE,sha256=dw3zLrp9f5ObD7kqS32vWfhcImfO52PMmRqvtxq_YEE,11358
406
- reflex-0.7.12.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,,
scripts/hatch_build.py CHANGED
@@ -1,5 +1,6 @@
1
1
  """Custom build hook for Hatch."""
2
2
 
3
+ import importlib.util
3
4
  import pathlib
4
5
  import subprocess
5
6
  import sys
@@ -37,6 +38,22 @@ class CustomBuilder(BuildHookInterface):
37
38
  if self.marker().exists():
38
39
  return
39
40
 
41
+ if importlib.util.find_spec("pre_commit") and importlib.util.find_spec("toml"):
42
+ import json
43
+
44
+ import toml
45
+ import yaml
46
+
47
+ reflex_dir = pathlib.Path(__file__).parent.parent
48
+ pre_commit_config = json.loads(
49
+ json.dumps(
50
+ toml.load(reflex_dir / "pyproject.toml")["tool"]["pre-commit"]
51
+ )
52
+ )
53
+ (reflex_dir / ".pre-commit-config.yaml").write_text(
54
+ yaml.dump(pre_commit_config), encoding="utf-8"
55
+ )
56
+
40
57
  if not (pathlib.Path(self.root) / "scripts").exists():
41
58
  return
42
59
 
@@ -1,66 +0,0 @@
1
- {# Helper macro to render JS objects and arrays #}
2
- {% macro render_js(val, indent=2, level=0) -%}
3
- {%- set space = ' ' * (indent * level) -%}
4
- {%- set next_space = ' ' * (indent * (level + 1)) -%}
5
-
6
- {%- if val is mapping -%}
7
- {
8
- {%- for k, v in val.items() %}
9
- {{ next_space }}{{ k if k is string and k.isidentifier() else k|tojson }}: {{ render_js(v, indent, level + 1) }}{{ "," if not loop.last }}
10
- {%- endfor %}
11
- {{ space }}}
12
- {%- elif val is iterable and val is not string -%}
13
- [
14
- {%- for item in val %}
15
- {{ next_space }}{{ render_js(item, indent, level + 1) }}{{ "," if not loop.last }}
16
- {%- endfor %}
17
- {{ space }}]
18
- {%- else -%}
19
- {{ val | tojson }}
20
- {%- endif -%}
21
- {%- endmacro %}
22
-
23
- {# Extract destructured imports from plugin dicts only #}
24
- {%- set imports = [] %}
25
- {%- for plugin in plugins if plugin is mapping and plugin.import is defined %}
26
- {%- set _ = imports.append(plugin.import) %}
27
- {%- endfor %}
28
-
29
- /** @type {import('tailwindcss').Config} */
30
- {%- for imp in imports %}
31
- const { {{ imp.name }} } = require({{ imp.from | tojson }});
32
- {%- endfor %}
33
-
34
- module.exports = {
35
- content: {{ render_js(content) }},
36
- theme: {{ render_js(theme) }},
37
- {% if darkMode is defined %}darkMode: {{ darkMode | tojson }},{% endif %}
38
- {% if corePlugins is defined %}corePlugins: {{ render_js(corePlugins) }},{% endif %}
39
- {% if important is defined %}important: {{ important | tojson }},{% endif %}
40
- {% if prefix is defined %}prefix: {{ prefix | tojson }},{% endif %}
41
- {% if separator is defined %}separator: {{ separator | tojson }},{% endif %}
42
- {% if presets is defined %}
43
- presets: [
44
- {% for preset in presets %}
45
- require({{ preset | tojson }}){{ "," if not loop.last }}
46
- {% endfor %}
47
- ],
48
- {% endif %}
49
- plugins: [
50
- {% for plugin in plugins %}
51
- {% if plugin is mapping %}
52
- {% if plugin.call is defined %}
53
- {{ plugin.call }}(
54
- {%- if plugin.args is defined -%}
55
- {{ render_js(plugin.args) }}
56
- {%- endif -%}
57
- ){{ "," if not loop.last }}
58
- {% else %}
59
- require({{ plugin.name | tojson }}){{ "," if not loop.last }}
60
- {% endif %}
61
- {% else %}
62
- require({{ plugin | tojson }}){{ "," if not loop.last }}
63
- {% endif %}
64
- {% endfor %}
65
- ]
66
- };
@@ -1,6 +0,0 @@
1
- @import "tailwindcss/base";
2
-
3
- @import "@radix-ui/themes/styles.css";
4
-
5
- @tailwind components;
6
- @tailwind utilities;
reflex/constants/style.py DELETED
@@ -1,16 +0,0 @@
1
- """Style constants."""
2
-
3
- from types import SimpleNamespace
4
-
5
-
6
- class Tailwind(SimpleNamespace):
7
- """Tailwind constants."""
8
-
9
- # The Tailwindcss version
10
- VERSION = "tailwindcss@3.4.17"
11
- # The Tailwind config.
12
- CONFIG = "tailwind.config.js"
13
- # Default Tailwind content paths
14
- CONTENT = ["./pages/**/*.{js,ts,jsx,tsx}", "./utils/**/*.{js,ts,jsx,tsx}"]
15
- # Relative tailwind style path to root stylesheet in Dirs.STYLES.
16
- ROOT_STYLE_PATH = "./tailwind.css"