reflex 0.6.0__py3-none-any.whl → 0.6.0a1__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 (253) hide show
  1. reflex/.templates/jinja/custom_components/pyproject.toml.jinja2 +2 -2
  2. reflex/.templates/jinja/web/pages/_app.js.jinja2 +1 -1
  3. reflex/.templates/jinja/web/pages/utils.js.jinja2 +2 -2
  4. reflex/.templates/web/components/reflex/chakra_color_mode_provider.js +36 -0
  5. reflex/.templates/web/utils/state.js +1 -3
  6. reflex/__init__.py +2 -8
  7. reflex/__init__.pyi +1 -2
  8. reflex/app.py +2 -4
  9. reflex/app_module_for_backend.py +1 -1
  10. reflex/base.py +1 -1
  11. reflex/compiler/compiler.py +2 -2
  12. reflex/compiler/utils.py +3 -3
  13. reflex/components/base/app_wrap.py +2 -2
  14. reflex/components/base/app_wrap.pyi +27 -17
  15. reflex/components/base/bare.py +5 -4
  16. reflex/components/base/body.pyi +27 -17
  17. reflex/components/base/document.pyi +131 -81
  18. reflex/components/base/error_boundary.py +7 -6
  19. reflex/components/base/error_boundary.pyi +33 -20
  20. reflex/components/base/fragment.pyi +27 -17
  21. reflex/components/base/head.pyi +53 -33
  22. reflex/components/base/link.py +1 -1
  23. reflex/components/base/link.pyi +54 -33
  24. reflex/components/base/meta.pyi +105 -65
  25. reflex/components/base/script.py +2 -1
  26. reflex/components/base/script.pyi +38 -21
  27. reflex/components/component.py +47 -53
  28. reflex/components/core/banner.py +27 -23
  29. reflex/components/core/banner.pyi +171 -134
  30. reflex/components/core/client_side_routing.py +3 -2
  31. reflex/components/core/client_side_routing.pyi +54 -33
  32. reflex/components/core/clipboard.py +1 -2
  33. reflex/components/core/clipboard.pyi +33 -20
  34. reflex/components/core/cond.py +5 -5
  35. reflex/components/core/debounce.py +5 -5
  36. reflex/components/core/debounce.pyi +33 -20
  37. reflex/components/core/foreach.py +4 -3
  38. reflex/components/core/html.py +1 -1
  39. reflex/components/core/html.pyi +46 -35
  40. reflex/components/core/match.py +17 -17
  41. reflex/components/core/upload.py +23 -17
  42. reflex/components/core/upload.pyi +124 -78
  43. reflex/components/datadisplay/code.py +10 -9
  44. reflex/components/datadisplay/code.pyi +409 -299
  45. reflex/components/datadisplay/dataeditor.py +10 -8
  46. reflex/components/datadisplay/dataeditor.pyi +53 -40
  47. reflex/components/el/element.pyi +27 -17
  48. reflex/components/el/elements/base.py +1 -1
  49. reflex/components/el/elements/base.pyi +45 -34
  50. reflex/components/el/elements/forms.py +16 -16
  51. reflex/components/el/elements/forms.pyi +707 -554
  52. reflex/components/el/elements/inline.py +1 -1
  53. reflex/components/el/elements/inline.pyi +1218 -937
  54. reflex/components/el/elements/media.py +1 -1
  55. reflex/components/el/elements/media.pyi +997 -786
  56. reflex/components/el/elements/metadata.py +6 -3
  57. reflex/components/el/elements/metadata.pyi +242 -181
  58. reflex/components/el/elements/other.py +1 -1
  59. reflex/components/el/elements/other.pyi +306 -235
  60. reflex/components/el/elements/scripts.py +1 -1
  61. reflex/components/el/elements/scripts.pyi +140 -109
  62. reflex/components/el/elements/sectioning.py +2 -0
  63. reflex/components/el/elements/sectioning.pyi +647 -496
  64. reflex/components/el/elements/tables.py +1 -1
  65. reflex/components/el/elements/tables.pyi +452 -351
  66. reflex/components/el/elements/typography.py +1 -1
  67. reflex/components/el/elements/typography.pyi +657 -506
  68. reflex/components/gridjs/datatable.py +9 -6
  69. reflex/components/gridjs/datatable.pyi +56 -35
  70. reflex/components/lucide/icon.py +1 -1
  71. reflex/components/lucide/icon.pyi +54 -33
  72. reflex/components/markdown/markdown.py +31 -26
  73. reflex/components/markdown/markdown.pyi +37 -27
  74. reflex/components/moment/moment.py +12 -13
  75. reflex/components/moment/moment.pyi +35 -23
  76. reflex/components/next/base.pyi +27 -17
  77. reflex/components/next/image.py +1 -1
  78. reflex/components/next/image.pyi +37 -22
  79. reflex/components/next/link.py +1 -1
  80. reflex/components/next/link.pyi +28 -17
  81. reflex/components/next/video.py +1 -1
  82. reflex/components/next/video.pyi +28 -17
  83. reflex/components/plotly/plotly.py +13 -12
  84. reflex/components/plotly/plotly.pyi +54 -39
  85. reflex/components/props.py +1 -1
  86. reflex/components/radix/__init__.pyi +0 -1
  87. reflex/components/radix/primitives/__init__.pyi +0 -1
  88. reflex/components/radix/primitives/accordion.py +4 -4
  89. reflex/components/radix/primitives/accordion.pyi +495 -424
  90. reflex/components/radix/primitives/base.py +1 -1
  91. reflex/components/radix/primitives/base.pyi +54 -33
  92. reflex/components/radix/primitives/drawer.py +1 -1
  93. reflex/components/radix/primitives/drawer.pyi +273 -172
  94. reflex/components/radix/primitives/form.py +1 -1
  95. reflex/components/radix/primitives/form.pyi +364 -257
  96. reflex/components/radix/primitives/progress.py +1 -1
  97. reflex/components/radix/primitives/progress.pyi +282 -231
  98. reflex/components/radix/primitives/slider.py +1 -1
  99. reflex/components/radix/primitives/slider.pyi +138 -87
  100. reflex/components/radix/themes/base.py +24 -3
  101. reflex/components/radix/themes/base.pyi +250 -178
  102. reflex/components/radix/themes/color_mode.py +5 -5
  103. reflex/components/radix/themes/color_mode.pyi +220 -187
  104. reflex/components/radix/themes/components/alert_dialog.py +1 -1
  105. reflex/components/radix/themes/components/alert_dialog.pyi +207 -136
  106. reflex/components/radix/themes/components/aspect_ratio.py +1 -1
  107. reflex/components/radix/themes/components/aspect_ratio.pyi +28 -17
  108. reflex/components/radix/themes/components/avatar.py +1 -1
  109. reflex/components/radix/themes/components/avatar.pyi +81 -70
  110. reflex/components/radix/themes/components/badge.py +1 -1
  111. reflex/components/radix/themes/components/badge.pyi +99 -88
  112. reflex/components/radix/themes/components/button.py +1 -1
  113. reflex/components/radix/themes/components/button.pyi +109 -98
  114. reflex/components/radix/themes/components/callout.py +1 -1
  115. reflex/components/radix/themes/components/callout.pyi +373 -322
  116. reflex/components/radix/themes/components/card.py +1 -1
  117. reflex/components/radix/themes/components/card.pyi +49 -38
  118. reflex/components/radix/themes/components/checkbox.py +2 -1
  119. reflex/components/radix/themes/components/checkbox.pyi +245 -208
  120. reflex/components/radix/themes/components/checkbox_cards.py +1 -1
  121. reflex/components/radix/themes/components/checkbox_cards.pyi +115 -94
  122. reflex/components/radix/themes/components/checkbox_group.py +1 -1
  123. reflex/components/radix/themes/components/checkbox_group.pyi +107 -86
  124. reflex/components/radix/themes/components/context_menu.py +1 -1
  125. reflex/components/radix/themes/components/context_menu.pyi +319 -238
  126. reflex/components/radix/themes/components/data_list.py +1 -1
  127. reflex/components/radix/themes/components/data_list.pyi +171 -130
  128. reflex/components/radix/themes/components/dialog.py +1 -1
  129. reflex/components/radix/themes/components/dialog.pyi +210 -139
  130. reflex/components/radix/themes/components/dropdown_menu.py +1 -1
  131. reflex/components/radix/themes/components/dropdown_menu.pyi +332 -249
  132. reflex/components/radix/themes/components/hover_card.py +1 -1
  133. reflex/components/radix/themes/components/hover_card.pyi +131 -90
  134. reflex/components/radix/themes/components/icon_button.py +3 -2
  135. reflex/components/radix/themes/components/icon_button.pyi +109 -98
  136. reflex/components/radix/themes/components/inset.py +1 -1
  137. reflex/components/radix/themes/components/inset.pyi +58 -47
  138. reflex/components/radix/themes/components/popover.py +1 -1
  139. reflex/components/radix/themes/components/popover.pyi +136 -95
  140. reflex/components/radix/themes/components/progress.py +1 -1
  141. reflex/components/radix/themes/components/progress.pyi +82 -71
  142. reflex/components/radix/themes/components/radio.py +1 -1
  143. reflex/components/radix/themes/components/radio.pyi +80 -69
  144. reflex/components/radix/themes/components/radio_cards.py +1 -1
  145. reflex/components/radix/themes/components/radio_cards.pyi +119 -98
  146. reflex/components/radix/themes/components/radio_group.py +11 -8
  147. reflex/components/radix/themes/components/radio_group.pyi +271 -228
  148. reflex/components/radix/themes/components/scroll_area.py +1 -1
  149. reflex/components/radix/themes/components/scroll_area.pyi +32 -21
  150. reflex/components/radix/themes/components/segmented_control.py +1 -1
  151. reflex/components/radix/themes/components/segmented_control.pyi +113 -90
  152. reflex/components/radix/themes/components/select.py +3 -2
  153. reflex/components/radix/themes/components/select.pyi +471 -374
  154. reflex/components/radix/themes/components/separator.py +2 -1
  155. reflex/components/radix/themes/components/separator.pyi +80 -69
  156. reflex/components/radix/themes/components/skeleton.py +1 -1
  157. reflex/components/radix/themes/components/skeleton.pyi +34 -23
  158. reflex/components/radix/themes/components/slider.py +3 -2
  159. reflex/components/radix/themes/components/slider.pyi +88 -75
  160. reflex/components/radix/themes/components/spinner.py +1 -1
  161. reflex/components/radix/themes/components/spinner.pyi +30 -19
  162. reflex/components/radix/themes/components/switch.py +1 -1
  163. reflex/components/radix/themes/components/switch.pyi +84 -71
  164. reflex/components/radix/themes/components/table.py +1 -1
  165. reflex/components/radix/themes/components/table.pyi +332 -261
  166. reflex/components/radix/themes/components/tabs.py +1 -1
  167. reflex/components/radix/themes/components/tabs.pyi +194 -139
  168. reflex/components/radix/themes/components/text_area.py +1 -1
  169. reflex/components/radix/themes/components/text_area.pyi +111 -96
  170. reflex/components/radix/themes/components/text_field.py +1 -1
  171. reflex/components/radix/themes/components/text_field.pyi +286 -247
  172. reflex/components/radix/themes/components/tooltip.py +1 -1
  173. reflex/components/radix/themes/components/tooltip.pyi +37 -26
  174. reflex/components/radix/themes/layout/__init__.pyi +0 -1
  175. reflex/components/radix/themes/layout/base.py +1 -1
  176. reflex/components/radix/themes/layout/base.pyi +67 -56
  177. reflex/components/radix/themes/layout/box.pyi +45 -34
  178. reflex/components/radix/themes/layout/center.pyi +67 -56
  179. reflex/components/radix/themes/layout/container.py +2 -1
  180. reflex/components/radix/themes/layout/container.pyi +47 -36
  181. reflex/components/radix/themes/layout/flex.py +1 -1
  182. reflex/components/radix/themes/layout/flex.pyi +67 -56
  183. reflex/components/radix/themes/layout/grid.py +1 -1
  184. reflex/components/radix/themes/layout/grid.pyi +75 -64
  185. reflex/components/radix/themes/layout/list.py +6 -5
  186. reflex/components/radix/themes/layout/list.pyi +244 -193
  187. reflex/components/radix/themes/layout/section.py +2 -1
  188. reflex/components/radix/themes/layout/section.pyi +47 -36
  189. reflex/components/radix/themes/layout/spacer.pyi +67 -56
  190. reflex/components/radix/themes/layout/stack.py +1 -1
  191. reflex/components/radix/themes/layout/stack.pyi +159 -128
  192. reflex/components/radix/themes/typography/blockquote.py +1 -1
  193. reflex/components/radix/themes/typography/blockquote.pyi +100 -89
  194. reflex/components/radix/themes/typography/code.py +1 -1
  195. reflex/components/radix/themes/typography/code.pyi +101 -90
  196. reflex/components/radix/themes/typography/heading.py +1 -1
  197. reflex/components/radix/themes/typography/heading.pyi +107 -96
  198. reflex/components/radix/themes/typography/link.py +1 -1
  199. reflex/components/radix/themes/typography/link.pyi +113 -102
  200. reflex/components/radix/themes/typography/text.py +1 -1
  201. reflex/components/radix/themes/typography/text.pyi +572 -501
  202. reflex/components/react_player/audio.pyi +60 -33
  203. reflex/components/react_player/react_player.py +1 -1
  204. reflex/components/react_player/react_player.pyi +60 -33
  205. reflex/components/react_player/video.pyi +60 -33
  206. reflex/components/recharts/cartesian.py +3 -2
  207. reflex/components/recharts/cartesian.pyi +861 -678
  208. reflex/components/recharts/charts.py +5 -4
  209. reflex/components/recharts/charts.pyi +357 -252
  210. reflex/components/recharts/general.py +2 -1
  211. reflex/components/recharts/general.pyi +231 -180
  212. reflex/components/recharts/polar.py +5 -4
  213. reflex/components/recharts/polar.pyi +181 -144
  214. reflex/components/recharts/recharts.pyi +53 -33
  215. reflex/components/sonner/toast.py +17 -16
  216. reflex/components/sonner/toast.pyi +47 -36
  217. reflex/components/suneditor/editor.py +3 -2
  218. reflex/components/suneditor/editor.pyi +78 -55
  219. reflex/components/tags/cond_tag.py +4 -6
  220. reflex/components/tags/iter_tag.py +16 -28
  221. reflex/components/tags/match_tag.py +4 -6
  222. reflex/components/tags/tag.py +23 -40
  223. reflex/custom_components/custom_components.py +1 -3
  224. reflex/event.py +65 -113
  225. reflex/experimental/client_state.py +24 -25
  226. reflex/experimental/hooks.py +16 -16
  227. reflex/experimental/layout.py +5 -5
  228. reflex/experimental/layout.pyi +187 -136
  229. reflex/{vars → ivars}/__init__.py +2 -6
  230. reflex/{vars → ivars}/base.py +216 -599
  231. reflex/{vars → ivars}/function.py +19 -15
  232. reflex/{vars → ivars}/number.py +20 -41
  233. reflex/{vars → ivars}/object.py +30 -28
  234. reflex/{vars → ivars}/sequence.py +50 -53
  235. reflex/middleware/hydrate_middleware.py +0 -2
  236. reflex/middleware/middleware.py +3 -3
  237. reflex/state.py +82 -148
  238. reflex/style.py +22 -21
  239. reflex/utils/exceptions.py +0 -20
  240. reflex/utils/format.py +34 -54
  241. reflex/utils/imports.py +73 -16
  242. reflex/utils/prerequisites.py +15 -35
  243. reflex/utils/pyi_generator.py +8 -13
  244. reflex/utils/serializers.py +22 -12
  245. reflex/utils/telemetry.py +2 -3
  246. reflex/utils/types.py +5 -10
  247. reflex/vars.py +501 -0
  248. {reflex-0.6.0.dist-info → reflex-0.6.0a1.dist-info}/METADATA +5 -4
  249. reflex-0.6.0a1.dist-info/RECORD +384 -0
  250. reflex-0.6.0.dist-info/RECORD +0 -382
  251. {reflex-0.6.0.dist-info → reflex-0.6.0a1.dist-info}/LICENSE +0 -0
  252. {reflex-0.6.0.dist-info → reflex-0.6.0a1.dist-info}/WHEEL +0 -0
  253. {reflex-0.6.0.dist-info → reflex-0.6.0a1.dist-info}/entry_points.txt +0 -0
@@ -3,17 +3,17 @@
3
3
  # ------------------- DO NOT EDIT ----------------------
4
4
  # This file was generated by `reflex/utils/pyi_generator.py`!
5
5
  # ------------------------------------------------------
6
- import dataclasses
7
6
  from typing import Any, Callable, Dict, Optional, Union, overload
8
7
 
8
+ from reflex.base import Base
9
9
  from reflex.components.component import NoSSRComponent
10
10
  from reflex.event import EventHandler, EventSpec
11
+ from reflex.ivars.base import ImmutableVar
11
12
  from reflex.style import Style
12
13
  from reflex.utils.imports import ImportDict
13
- from reflex.vars.base import Var
14
+ from reflex.vars import Var
14
15
 
15
- @dataclasses.dataclass(frozen=True)
16
- class MomentDelta:
16
+ class MomentDelta(Base):
17
17
  years: Optional[int]
18
18
  quarters: Optional[int]
19
19
  months: Optional[int]
@@ -35,8 +35,8 @@ class Moment(NoSSRComponent):
35
35
  format: Optional[Union[Var[str], str]] = None,
36
36
  trim: Optional[Union[Var[bool], bool]] = None,
37
37
  parse: Optional[Union[Var[str], str]] = None,
38
- add: Optional[Union[MomentDelta, Var[MomentDelta]]] = None,
39
- subtract: Optional[Union[MomentDelta, Var[MomentDelta]]] = None,
38
+ add: Optional[Union[Var[MomentDelta], MomentDelta]] = None,
39
+ subtract: Optional[Union[Var[MomentDelta], MomentDelta]] = None,
40
40
  from_now: Optional[Union[Var[bool], bool]] = None,
41
41
  from_now_during: Optional[Union[Var[int], int]] = None,
42
42
  to_now: Optional[Union[Var[bool], bool]] = None,
@@ -56,42 +56,54 @@ class Moment(NoSSRComponent):
56
56
  id: Optional[Any] = None,
57
57
  class_name: Optional[Any] = None,
58
58
  autofocus: Optional[bool] = None,
59
- custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
60
- on_blur: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
61
- on_change: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
62
- on_click: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
59
+ custom_attrs: Optional[Dict[str, Union[ImmutableVar, str]]] = None,
60
+ on_blur: Optional[
61
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
62
+ ] = None,
63
+ on_change: Optional[
64
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
65
+ ] = None,
66
+ on_click: Optional[
67
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
68
+ ] = None,
63
69
  on_context_menu: Optional[
64
- Union[EventHandler, EventSpec, list, Callable, Var]
70
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
65
71
  ] = None,
66
72
  on_double_click: Optional[
67
- Union[EventHandler, EventSpec, list, Callable, Var]
73
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
74
+ ] = None,
75
+ on_focus: Optional[
76
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
77
+ ] = None,
78
+ on_mount: Optional[
79
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
68
80
  ] = None,
69
- on_focus: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
70
- on_mount: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
71
81
  on_mouse_down: Optional[
72
- Union[EventHandler, EventSpec, list, Callable, Var]
82
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
73
83
  ] = None,
74
84
  on_mouse_enter: Optional[
75
- Union[EventHandler, EventSpec, list, Callable, Var]
85
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
76
86
  ] = None,
77
87
  on_mouse_leave: Optional[
78
- Union[EventHandler, EventSpec, list, Callable, Var]
88
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
79
89
  ] = None,
80
90
  on_mouse_move: Optional[
81
- Union[EventHandler, EventSpec, list, Callable, Var]
91
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
82
92
  ] = None,
83
93
  on_mouse_out: Optional[
84
- Union[EventHandler, EventSpec, list, Callable, Var]
94
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
85
95
  ] = None,
86
96
  on_mouse_over: Optional[
87
- Union[EventHandler, EventSpec, list, Callable, Var]
97
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
88
98
  ] = None,
89
99
  on_mouse_up: Optional[
90
- Union[EventHandler, EventSpec, list, Callable, Var]
100
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
101
+ ] = None,
102
+ on_scroll: Optional[
103
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
91
104
  ] = None,
92
- on_scroll: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
93
105
  on_unmount: Optional[
94
- Union[EventHandler, EventSpec, list, Callable, Var]
106
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
95
107
  ] = None,
96
108
  **props,
97
109
  ) -> "Moment":
@@ -7,8 +7,8 @@ from typing import Any, Callable, Dict, Optional, Union, overload
7
7
 
8
8
  from reflex.components.component import Component
9
9
  from reflex.event import EventHandler, EventSpec
10
+ from reflex.ivars.base import ImmutableVar
10
11
  from reflex.style import Style
11
- from reflex.vars.base import Var
12
12
 
13
13
  class NextComponent(Component):
14
14
  ...
@@ -23,41 +23,51 @@ class NextComponent(Component):
23
23
  id: Optional[Any] = None,
24
24
  class_name: Optional[Any] = None,
25
25
  autofocus: Optional[bool] = None,
26
- custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
27
- on_blur: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
28
- on_click: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
26
+ custom_attrs: Optional[Dict[str, Union[ImmutableVar, str]]] = None,
27
+ on_blur: Optional[
28
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
29
+ ] = None,
30
+ on_click: Optional[
31
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
32
+ ] = None,
29
33
  on_context_menu: Optional[
30
- Union[EventHandler, EventSpec, list, Callable, Var]
34
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
31
35
  ] = None,
32
36
  on_double_click: Optional[
33
- Union[EventHandler, EventSpec, list, Callable, Var]
37
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
38
+ ] = None,
39
+ on_focus: Optional[
40
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
41
+ ] = None,
42
+ on_mount: Optional[
43
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
34
44
  ] = None,
35
- on_focus: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
36
- on_mount: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
37
45
  on_mouse_down: Optional[
38
- Union[EventHandler, EventSpec, list, Callable, Var]
46
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
39
47
  ] = None,
40
48
  on_mouse_enter: Optional[
41
- Union[EventHandler, EventSpec, list, Callable, Var]
49
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
42
50
  ] = None,
43
51
  on_mouse_leave: Optional[
44
- Union[EventHandler, EventSpec, list, Callable, Var]
52
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
45
53
  ] = None,
46
54
  on_mouse_move: Optional[
47
- Union[EventHandler, EventSpec, list, Callable, Var]
55
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
48
56
  ] = None,
49
57
  on_mouse_out: Optional[
50
- Union[EventHandler, EventSpec, list, Callable, Var]
58
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
51
59
  ] = None,
52
60
  on_mouse_over: Optional[
53
- Union[EventHandler, EventSpec, list, Callable, Var]
61
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
54
62
  ] = None,
55
63
  on_mouse_up: Optional[
56
- Union[EventHandler, EventSpec, list, Callable, Var]
64
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
65
+ ] = None,
66
+ on_scroll: Optional[
67
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
57
68
  ] = None,
58
- on_scroll: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
59
69
  on_unmount: Optional[
60
- Union[EventHandler, EventSpec, list, Callable, Var]
70
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
61
71
  ] = None,
62
72
  **props,
63
73
  ) -> "NextComponent":
@@ -4,7 +4,7 @@ from typing import Any, Literal, Optional, Union
4
4
 
5
5
  from reflex.event import EventHandler
6
6
  from reflex.utils import types
7
- from reflex.vars.base import Var
7
+ from reflex.vars import Var
8
8
 
9
9
  from .base import NextComponent
10
10
 
@@ -6,8 +6,9 @@
6
6
  from typing import Any, Callable, Dict, Literal, Optional, Union, overload
7
7
 
8
8
  from reflex.event import EventHandler, EventSpec
9
+ from reflex.ivars.base import ImmutableVar
9
10
  from reflex.style import Style
10
- from reflex.vars.base import Var
11
+ from reflex.vars import Var
11
12
 
12
13
  from .base import NextComponent
13
14
 
@@ -19,16 +20,16 @@ class Image(NextComponent):
19
20
  *children,
20
21
  width: Optional[Union[int, str]] = None,
21
22
  height: Optional[Union[int, str]] = None,
22
- src: Optional[Union[Any, Var[Any]]] = None,
23
+ src: Optional[Union[Var[Any], Any]] = None,
23
24
  alt: Optional[Union[Var[str], str]] = None,
24
- loader: Optional[Union[Any, Var[Any]]] = None,
25
+ loader: Optional[Union[Var[Any], Any]] = None,
25
26
  fill: Optional[Union[Var[bool], bool]] = None,
26
27
  sizes: Optional[Union[Var[str], str]] = None,
27
28
  quality: Optional[Union[Var[int], int]] = None,
28
29
  priority: Optional[Union[Var[bool], bool]] = None,
29
30
  placeholder: Optional[Union[Var[str], str]] = None,
30
31
  loading: Optional[
31
- Union[Literal["eager", "lazy"], Var[Literal["eager", "lazy"]]]
32
+ Union[Var[Literal["lazy", "eager"]], Literal["lazy", "eager"]]
32
33
  ] = None,
33
34
  blurDataURL: Optional[Union[Var[str], str]] = None,
34
35
  style: Optional[Style] = None,
@@ -36,43 +37,57 @@ class Image(NextComponent):
36
37
  id: Optional[Any] = None,
37
38
  class_name: Optional[Any] = None,
38
39
  autofocus: Optional[bool] = None,
39
- custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
40
- on_blur: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
41
- on_click: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
40
+ custom_attrs: Optional[Dict[str, Union[ImmutableVar, str]]] = None,
41
+ on_blur: Optional[
42
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
43
+ ] = None,
44
+ on_click: Optional[
45
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
46
+ ] = None,
42
47
  on_context_menu: Optional[
43
- Union[EventHandler, EventSpec, list, Callable, Var]
48
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
44
49
  ] = None,
45
50
  on_double_click: Optional[
46
- Union[EventHandler, EventSpec, list, Callable, Var]
51
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
52
+ ] = None,
53
+ on_error: Optional[
54
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
55
+ ] = None,
56
+ on_focus: Optional[
57
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
58
+ ] = None,
59
+ on_load: Optional[
60
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
61
+ ] = None,
62
+ on_mount: Optional[
63
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
47
64
  ] = None,
48
- on_error: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
49
- on_focus: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
50
- on_load: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
51
- on_mount: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
52
65
  on_mouse_down: Optional[
53
- Union[EventHandler, EventSpec, list, Callable, Var]
66
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
54
67
  ] = None,
55
68
  on_mouse_enter: Optional[
56
- Union[EventHandler, EventSpec, list, Callable, Var]
69
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
57
70
  ] = None,
58
71
  on_mouse_leave: Optional[
59
- Union[EventHandler, EventSpec, list, Callable, Var]
72
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
60
73
  ] = None,
61
74
  on_mouse_move: Optional[
62
- Union[EventHandler, EventSpec, list, Callable, Var]
75
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
63
76
  ] = None,
64
77
  on_mouse_out: Optional[
65
- Union[EventHandler, EventSpec, list, Callable, Var]
78
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
66
79
  ] = None,
67
80
  on_mouse_over: Optional[
68
- Union[EventHandler, EventSpec, list, Callable, Var]
81
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
69
82
  ] = None,
70
83
  on_mouse_up: Optional[
71
- Union[EventHandler, EventSpec, list, Callable, Var]
84
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
85
+ ] = None,
86
+ on_scroll: Optional[
87
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
72
88
  ] = None,
73
- on_scroll: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
74
89
  on_unmount: Optional[
75
- Union[EventHandler, EventSpec, list, Callable, Var]
90
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
76
91
  ] = None,
77
92
  **props,
78
93
  ) -> "Image":
@@ -1,7 +1,7 @@
1
1
  """A link component."""
2
2
 
3
3
  from reflex.components.component import Component
4
- from reflex.vars.base import Var
4
+ from reflex.vars import Var
5
5
 
6
6
 
7
7
  class NextLink(Component):
@@ -7,8 +7,9 @@ from typing import Any, Callable, Dict, Optional, Union, overload
7
7
 
8
8
  from reflex.components.component import Component
9
9
  from reflex.event import EventHandler, EventSpec
10
+ from reflex.ivars.base import ImmutableVar
10
11
  from reflex.style import Style
11
- from reflex.vars.base import Var
12
+ from reflex.vars import Var
12
13
 
13
14
  class NextLink(Component):
14
15
  @overload
@@ -23,41 +24,51 @@ class NextLink(Component):
23
24
  id: Optional[Any] = None,
24
25
  class_name: Optional[Any] = None,
25
26
  autofocus: Optional[bool] = None,
26
- custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
27
- on_blur: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
28
- on_click: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
27
+ custom_attrs: Optional[Dict[str, Union[ImmutableVar, str]]] = None,
28
+ on_blur: Optional[
29
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
30
+ ] = None,
31
+ on_click: Optional[
32
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
33
+ ] = None,
29
34
  on_context_menu: Optional[
30
- Union[EventHandler, EventSpec, list, Callable, Var]
35
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
31
36
  ] = None,
32
37
  on_double_click: Optional[
33
- Union[EventHandler, EventSpec, list, Callable, Var]
38
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
39
+ ] = None,
40
+ on_focus: Optional[
41
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
42
+ ] = None,
43
+ on_mount: Optional[
44
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
34
45
  ] = None,
35
- on_focus: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
36
- on_mount: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
37
46
  on_mouse_down: Optional[
38
- Union[EventHandler, EventSpec, list, Callable, Var]
47
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
39
48
  ] = None,
40
49
  on_mouse_enter: Optional[
41
- Union[EventHandler, EventSpec, list, Callable, Var]
50
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
42
51
  ] = None,
43
52
  on_mouse_leave: Optional[
44
- Union[EventHandler, EventSpec, list, Callable, Var]
53
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
45
54
  ] = None,
46
55
  on_mouse_move: Optional[
47
- Union[EventHandler, EventSpec, list, Callable, Var]
56
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
48
57
  ] = None,
49
58
  on_mouse_out: Optional[
50
- Union[EventHandler, EventSpec, list, Callable, Var]
59
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
51
60
  ] = None,
52
61
  on_mouse_over: Optional[
53
- Union[EventHandler, EventSpec, list, Callable, Var]
62
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
54
63
  ] = None,
55
64
  on_mouse_up: Optional[
56
- Union[EventHandler, EventSpec, list, Callable, Var]
65
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
66
+ ] = None,
67
+ on_scroll: Optional[
68
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
57
69
  ] = None,
58
- on_scroll: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
59
70
  on_unmount: Optional[
60
- Union[EventHandler, EventSpec, list, Callable, Var]
71
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
61
72
  ] = None,
62
73
  **props,
63
74
  ) -> "NextLink":
@@ -3,7 +3,7 @@
3
3
  from typing import Optional
4
4
 
5
5
  from reflex.components.component import Component
6
- from reflex.vars.base import Var
6
+ from reflex.vars import Var
7
7
 
8
8
  from .base import NextComponent
9
9
 
@@ -7,8 +7,9 @@ from typing import Any, Callable, Dict, Optional, Union, overload
7
7
 
8
8
  from reflex.components.component import Component
9
9
  from reflex.event import EventHandler, EventSpec
10
+ from reflex.ivars.base import ImmutableVar
10
11
  from reflex.style import Style
11
- from reflex.vars.base import Var
12
+ from reflex.vars import Var
12
13
 
13
14
  from .base import NextComponent
14
15
 
@@ -25,41 +26,51 @@ class Video(NextComponent):
25
26
  id: Optional[Any] = None,
26
27
  class_name: Optional[Any] = None,
27
28
  autofocus: Optional[bool] = None,
28
- custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
29
- on_blur: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
30
- on_click: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
29
+ custom_attrs: Optional[Dict[str, Union[ImmutableVar, str]]] = None,
30
+ on_blur: Optional[
31
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
32
+ ] = None,
33
+ on_click: Optional[
34
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
35
+ ] = None,
31
36
  on_context_menu: Optional[
32
- Union[EventHandler, EventSpec, list, Callable, Var]
37
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
33
38
  ] = None,
34
39
  on_double_click: Optional[
35
- Union[EventHandler, EventSpec, list, Callable, Var]
40
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
41
+ ] = None,
42
+ on_focus: Optional[
43
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
44
+ ] = None,
45
+ on_mount: Optional[
46
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
36
47
  ] = None,
37
- on_focus: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
38
- on_mount: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
39
48
  on_mouse_down: Optional[
40
- Union[EventHandler, EventSpec, list, Callable, Var]
49
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
41
50
  ] = None,
42
51
  on_mouse_enter: Optional[
43
- Union[EventHandler, EventSpec, list, Callable, Var]
52
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
44
53
  ] = None,
45
54
  on_mouse_leave: Optional[
46
- Union[EventHandler, EventSpec, list, Callable, Var]
55
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
47
56
  ] = None,
48
57
  on_mouse_move: Optional[
49
- Union[EventHandler, EventSpec, list, Callable, Var]
58
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
50
59
  ] = None,
51
60
  on_mouse_out: Optional[
52
- Union[EventHandler, EventSpec, list, Callable, Var]
61
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
53
62
  ] = None,
54
63
  on_mouse_over: Optional[
55
- Union[EventHandler, EventSpec, list, Callable, Var]
64
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
56
65
  ] = None,
57
66
  on_mouse_up: Optional[
58
- Union[EventHandler, EventSpec, list, Callable, Var]
67
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
68
+ ] = None,
69
+ on_scroll: Optional[
70
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
59
71
  ] = None,
60
- on_scroll: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
61
72
  on_unmount: Optional[
62
- Union[EventHandler, EventSpec, list, Callable, Var]
73
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
63
74
  ] = None,
64
75
  **props,
65
76
  ) -> "Video":
@@ -8,8 +8,9 @@ from reflex.base import Base
8
8
  from reflex.components.component import Component, NoSSRComponent
9
9
  from reflex.components.core.cond import color_mode_cond
10
10
  from reflex.event import EventHandler
11
+ from reflex.ivars.base import ImmutableVar, LiteralVar
11
12
  from reflex.utils import console
12
- from reflex.vars.base import LiteralVar, Var
13
+ from reflex.vars import Var
13
14
 
14
15
  try:
15
16
  from plotly.graph_objects import Figure, layout
@@ -30,7 +31,7 @@ def _event_data_signature(e0: Var) -> List[Any]:
30
31
  Returns:
31
32
  The event key extracted from the event data (if defined).
32
33
  """
33
- return [Var(_js_expr=f"{e0}?.event")]
34
+ return [ImmutableVar.create_safe(f"{e0}?.event")]
34
35
 
35
36
 
36
37
  def _event_points_data_signature(e0: Var) -> List[Any]:
@@ -43,8 +44,8 @@ def _event_points_data_signature(e0: Var) -> List[Any]:
43
44
  The event data and the extracted points.
44
45
  """
45
46
  return [
46
- Var(_js_expr=f"{e0}?.event"),
47
- Var(_js_expr=f"extractPoints({e0}?.points)"),
47
+ ImmutableVar.create_safe(f"{e0}?.event"),
48
+ ImmutableVar.create_safe(f"extractPoints({e0}?.points)"),
48
49
  ]
49
50
 
50
51
 
@@ -101,13 +102,13 @@ class Plotly(NoSSRComponent):
101
102
  is_default = True
102
103
 
103
104
  # The figure to display. This can be a plotly figure or a plotly data json.
104
- data: Var[Figure] # type: ignore
105
+ data: Var[Figure]
105
106
 
106
107
  # The layout of the graph.
107
108
  layout: Var[Dict]
108
109
 
109
110
  # The template for visual appearance of the graph.
110
- template: Var[Template] # type: ignore
111
+ template: Var[Template]
111
112
 
112
113
  # The config of the graph.
113
114
  config: Var[Dict]
@@ -242,7 +243,7 @@ const extractPoints = (points) => {
242
243
  light=LiteralVar.create(templates["plotly"]),
243
244
  dark=LiteralVar.create(templates["plotly_dark"]),
244
245
  )
245
- if isinstance(responsive_template, Var):
246
+ if isinstance(responsive_template, ImmutableVar):
246
247
  # Mark the conditional Var as a Template to avoid type mismatch
247
248
  responsive_template = responsive_template.to(Template)
248
249
  props.setdefault("template", responsive_template)
@@ -254,7 +255,7 @@ const extractPoints = (points) => {
254
255
 
255
256
  def _render(self):
256
257
  tag = super()._render()
257
- figure = self.data.to(dict)
258
+ figure = self.data.upcast().to(dict)
258
259
  merge_dicts = [] # Data will be merged and spread from these dict Vars
259
260
  if self.layout is not None:
260
261
  # Why is this not a literal dict? Great question... it didn't work
@@ -266,14 +267,14 @@ const extractPoints = (points) => {
266
267
  template_dict = LiteralVar.create({"layout": {"template": self.template}})
267
268
  merge_dicts.append(template_dict.without_data())
268
269
  if merge_dicts:
269
- tag.special_props.append(
270
+ tag.special_props.add(
270
271
  # Merge all dictionaries and spread the result over props.
271
- Var(
272
- _js_expr=f"{{...mergician({str(figure)},"
272
+ ImmutableVar.create_safe(
273
+ f"{{...mergician({str(figure)},"
273
274
  f"{','.join(str(md) for md in merge_dicts)})}}",
274
275
  ),
275
276
  )
276
277
  else:
277
278
  # Spread the figure dict over props, nothing to merge.
278
- tag.special_props.append(Var(_js_expr=f"{{...{str(figure)}}}"))
279
+ tag.special_props.add(ImmutableVar.create_safe(f"{{...{str(figure)}}}"))
279
280
  return tag