reflex 0.6.0a1__py3-none-any.whl → 0.6.0a2__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 (249) hide show
  1. reflex/.templates/jinja/web/pages/_app.js.jinja2 +1 -1
  2. reflex/.templates/jinja/web/pages/utils.js.jinja2 +2 -2
  3. reflex/__init__.py +8 -2
  4. reflex/__init__.pyi +2 -1
  5. reflex/app.py +4 -2
  6. reflex/base.py +1 -1
  7. reflex/compiler/compiler.py +2 -2
  8. reflex/compiler/utils.py +3 -3
  9. reflex/components/base/app_wrap.py +2 -2
  10. reflex/components/base/app_wrap.pyi +17 -27
  11. reflex/components/base/bare.py +4 -5
  12. reflex/components/base/body.pyi +17 -27
  13. reflex/components/base/document.pyi +81 -131
  14. reflex/components/base/error_boundary.py +6 -7
  15. reflex/components/base/error_boundary.pyi +20 -33
  16. reflex/components/base/fragment.pyi +17 -27
  17. reflex/components/base/head.pyi +33 -53
  18. reflex/components/base/link.py +1 -1
  19. reflex/components/base/link.pyi +33 -54
  20. reflex/components/base/meta.pyi +65 -105
  21. reflex/components/base/script.py +1 -2
  22. reflex/components/base/script.pyi +21 -38
  23. reflex/components/component.py +48 -47
  24. reflex/components/core/banner.py +23 -27
  25. reflex/components/core/banner.pyi +134 -171
  26. reflex/components/core/client_side_routing.py +2 -3
  27. reflex/components/core/client_side_routing.pyi +33 -54
  28. reflex/components/core/clipboard.py +2 -1
  29. reflex/components/core/clipboard.pyi +20 -33
  30. reflex/components/core/cond.py +5 -5
  31. reflex/components/core/debounce.py +5 -5
  32. reflex/components/core/debounce.pyi +20 -33
  33. reflex/components/core/foreach.py +3 -4
  34. reflex/components/core/html.py +1 -1
  35. reflex/components/core/html.pyi +35 -46
  36. reflex/components/core/match.py +17 -17
  37. reflex/components/core/upload.py +17 -23
  38. reflex/components/core/upload.pyi +78 -124
  39. reflex/components/datadisplay/code.py +9 -10
  40. reflex/components/datadisplay/code.pyi +302 -412
  41. reflex/components/datadisplay/dataeditor.py +8 -10
  42. reflex/components/datadisplay/dataeditor.pyi +40 -53
  43. reflex/components/el/element.pyi +17 -27
  44. reflex/components/el/elements/base.py +1 -1
  45. reflex/components/el/elements/base.pyi +34 -45
  46. reflex/components/el/elements/forms.py +16 -16
  47. reflex/components/el/elements/forms.pyi +554 -707
  48. reflex/components/el/elements/inline.py +1 -1
  49. reflex/components/el/elements/inline.pyi +937 -1218
  50. reflex/components/el/elements/media.py +1 -1
  51. reflex/components/el/elements/media.pyi +786 -997
  52. reflex/components/el/elements/metadata.py +3 -6
  53. reflex/components/el/elements/metadata.pyi +181 -242
  54. reflex/components/el/elements/other.py +1 -1
  55. reflex/components/el/elements/other.pyi +235 -306
  56. reflex/components/el/elements/scripts.py +1 -1
  57. reflex/components/el/elements/scripts.pyi +109 -140
  58. reflex/components/el/elements/sectioning.py +0 -2
  59. reflex/components/el/elements/sectioning.pyi +496 -647
  60. reflex/components/el/elements/tables.py +1 -1
  61. reflex/components/el/elements/tables.pyi +351 -452
  62. reflex/components/el/elements/typography.py +1 -1
  63. reflex/components/el/elements/typography.pyi +506 -657
  64. reflex/components/gridjs/datatable.py +6 -9
  65. reflex/components/gridjs/datatable.pyi +35 -56
  66. reflex/components/lucide/icon.py +1 -1
  67. reflex/components/lucide/icon.pyi +33 -54
  68. reflex/components/markdown/markdown.py +26 -31
  69. reflex/components/markdown/markdown.pyi +27 -37
  70. reflex/components/moment/moment.py +13 -12
  71. reflex/components/moment/moment.pyi +23 -35
  72. reflex/components/next/base.pyi +17 -27
  73. reflex/components/next/image.py +1 -1
  74. reflex/components/next/image.pyi +22 -37
  75. reflex/components/next/link.py +1 -1
  76. reflex/components/next/link.pyi +17 -28
  77. reflex/components/next/video.py +1 -1
  78. reflex/components/next/video.pyi +17 -28
  79. reflex/components/plotly/plotly.py +12 -13
  80. reflex/components/plotly/plotly.pyi +39 -54
  81. reflex/components/props.py +1 -1
  82. reflex/components/radix/__init__.pyi +1 -0
  83. reflex/components/radix/primitives/__init__.pyi +1 -0
  84. reflex/components/radix/primitives/accordion.py +4 -4
  85. reflex/components/radix/primitives/accordion.pyi +424 -495
  86. reflex/components/radix/primitives/base.py +1 -1
  87. reflex/components/radix/primitives/base.pyi +33 -54
  88. reflex/components/radix/primitives/drawer.py +1 -1
  89. reflex/components/radix/primitives/drawer.pyi +172 -273
  90. reflex/components/radix/primitives/form.py +1 -1
  91. reflex/components/radix/primitives/form.pyi +257 -364
  92. reflex/components/radix/primitives/progress.py +1 -1
  93. reflex/components/radix/primitives/progress.pyi +231 -282
  94. reflex/components/radix/primitives/slider.py +1 -1
  95. reflex/components/radix/primitives/slider.pyi +87 -138
  96. reflex/components/radix/themes/base.py +3 -24
  97. reflex/components/radix/themes/base.pyi +178 -250
  98. reflex/components/radix/themes/color_mode.py +5 -5
  99. reflex/components/radix/themes/color_mode.pyi +187 -220
  100. reflex/components/radix/themes/components/alert_dialog.py +1 -1
  101. reflex/components/radix/themes/components/alert_dialog.pyi +136 -207
  102. reflex/components/radix/themes/components/aspect_ratio.py +1 -1
  103. reflex/components/radix/themes/components/aspect_ratio.pyi +17 -28
  104. reflex/components/radix/themes/components/avatar.py +1 -1
  105. reflex/components/radix/themes/components/avatar.pyi +70 -81
  106. reflex/components/radix/themes/components/badge.py +1 -1
  107. reflex/components/radix/themes/components/badge.pyi +88 -99
  108. reflex/components/radix/themes/components/button.py +1 -1
  109. reflex/components/radix/themes/components/button.pyi +98 -109
  110. reflex/components/radix/themes/components/callout.py +1 -1
  111. reflex/components/radix/themes/components/callout.pyi +322 -373
  112. reflex/components/radix/themes/components/card.py +1 -1
  113. reflex/components/radix/themes/components/card.pyi +38 -49
  114. reflex/components/radix/themes/components/checkbox.py +1 -2
  115. reflex/components/radix/themes/components/checkbox.pyi +208 -245
  116. reflex/components/radix/themes/components/checkbox_cards.py +1 -1
  117. reflex/components/radix/themes/components/checkbox_cards.pyi +94 -115
  118. reflex/components/radix/themes/components/checkbox_group.py +1 -1
  119. reflex/components/radix/themes/components/checkbox_group.pyi +86 -107
  120. reflex/components/radix/themes/components/context_menu.py +1 -1
  121. reflex/components/radix/themes/components/context_menu.pyi +238 -319
  122. reflex/components/radix/themes/components/data_list.py +1 -1
  123. reflex/components/radix/themes/components/data_list.pyi +130 -171
  124. reflex/components/radix/themes/components/dialog.py +1 -1
  125. reflex/components/radix/themes/components/dialog.pyi +139 -210
  126. reflex/components/radix/themes/components/dropdown_menu.py +1 -1
  127. reflex/components/radix/themes/components/dropdown_menu.pyi +249 -332
  128. reflex/components/radix/themes/components/hover_card.py +1 -1
  129. reflex/components/radix/themes/components/hover_card.pyi +90 -131
  130. reflex/components/radix/themes/components/icon_button.py +2 -3
  131. reflex/components/radix/themes/components/icon_button.pyi +98 -109
  132. reflex/components/radix/themes/components/inset.py +1 -1
  133. reflex/components/radix/themes/components/inset.pyi +47 -58
  134. reflex/components/radix/themes/components/popover.py +1 -1
  135. reflex/components/radix/themes/components/popover.pyi +95 -136
  136. reflex/components/radix/themes/components/progress.py +1 -1
  137. reflex/components/radix/themes/components/progress.pyi +71 -82
  138. reflex/components/radix/themes/components/radio.py +1 -1
  139. reflex/components/radix/themes/components/radio.pyi +69 -80
  140. reflex/components/radix/themes/components/radio_cards.py +1 -1
  141. reflex/components/radix/themes/components/radio_cards.pyi +98 -119
  142. reflex/components/radix/themes/components/radio_group.py +8 -11
  143. reflex/components/radix/themes/components/radio_group.pyi +228 -271
  144. reflex/components/radix/themes/components/scroll_area.py +1 -1
  145. reflex/components/radix/themes/components/scroll_area.pyi +21 -32
  146. reflex/components/radix/themes/components/segmented_control.py +1 -1
  147. reflex/components/radix/themes/components/segmented_control.pyi +90 -113
  148. reflex/components/radix/themes/components/select.py +2 -3
  149. reflex/components/radix/themes/components/select.pyi +374 -471
  150. reflex/components/radix/themes/components/separator.py +1 -2
  151. reflex/components/radix/themes/components/separator.pyi +69 -80
  152. reflex/components/radix/themes/components/skeleton.py +1 -1
  153. reflex/components/radix/themes/components/skeleton.pyi +23 -34
  154. reflex/components/radix/themes/components/slider.py +2 -3
  155. reflex/components/radix/themes/components/slider.pyi +75 -88
  156. reflex/components/radix/themes/components/spinner.py +1 -1
  157. reflex/components/radix/themes/components/spinner.pyi +19 -30
  158. reflex/components/radix/themes/components/switch.py +1 -1
  159. reflex/components/radix/themes/components/switch.pyi +71 -84
  160. reflex/components/radix/themes/components/table.py +1 -1
  161. reflex/components/radix/themes/components/table.pyi +261 -332
  162. reflex/components/radix/themes/components/tabs.py +1 -1
  163. reflex/components/radix/themes/components/tabs.pyi +139 -194
  164. reflex/components/radix/themes/components/text_area.py +1 -1
  165. reflex/components/radix/themes/components/text_area.pyi +96 -111
  166. reflex/components/radix/themes/components/text_field.py +1 -1
  167. reflex/components/radix/themes/components/text_field.pyi +247 -286
  168. reflex/components/radix/themes/components/tooltip.py +1 -1
  169. reflex/components/radix/themes/components/tooltip.pyi +26 -37
  170. reflex/components/radix/themes/layout/__init__.pyi +1 -0
  171. reflex/components/radix/themes/layout/base.py +1 -1
  172. reflex/components/radix/themes/layout/base.pyi +56 -67
  173. reflex/components/radix/themes/layout/box.pyi +34 -45
  174. reflex/components/radix/themes/layout/center.pyi +56 -67
  175. reflex/components/radix/themes/layout/container.py +1 -2
  176. reflex/components/radix/themes/layout/container.pyi +36 -47
  177. reflex/components/radix/themes/layout/flex.py +1 -1
  178. reflex/components/radix/themes/layout/flex.pyi +56 -67
  179. reflex/components/radix/themes/layout/grid.py +1 -1
  180. reflex/components/radix/themes/layout/grid.pyi +64 -75
  181. reflex/components/radix/themes/layout/list.py +5 -6
  182. reflex/components/radix/themes/layout/list.pyi +193 -244
  183. reflex/components/radix/themes/layout/section.py +1 -2
  184. reflex/components/radix/themes/layout/section.pyi +36 -47
  185. reflex/components/radix/themes/layout/spacer.pyi +56 -67
  186. reflex/components/radix/themes/layout/stack.py +1 -1
  187. reflex/components/radix/themes/layout/stack.pyi +128 -159
  188. reflex/components/radix/themes/typography/blockquote.py +1 -1
  189. reflex/components/radix/themes/typography/blockquote.pyi +89 -100
  190. reflex/components/radix/themes/typography/code.py +1 -1
  191. reflex/components/radix/themes/typography/code.pyi +90 -101
  192. reflex/components/radix/themes/typography/heading.py +1 -1
  193. reflex/components/radix/themes/typography/heading.pyi +96 -107
  194. reflex/components/radix/themes/typography/link.py +1 -1
  195. reflex/components/radix/themes/typography/link.pyi +102 -113
  196. reflex/components/radix/themes/typography/text.py +1 -1
  197. reflex/components/radix/themes/typography/text.pyi +501 -572
  198. reflex/components/react_player/audio.pyi +33 -60
  199. reflex/components/react_player/react_player.py +1 -1
  200. reflex/components/react_player/react_player.pyi +33 -60
  201. reflex/components/react_player/video.pyi +33 -60
  202. reflex/components/recharts/cartesian.py +2 -3
  203. reflex/components/recharts/cartesian.pyi +678 -861
  204. reflex/components/recharts/charts.py +4 -5
  205. reflex/components/recharts/charts.pyi +252 -357
  206. reflex/components/recharts/general.py +1 -2
  207. reflex/components/recharts/general.pyi +180 -231
  208. reflex/components/recharts/polar.py +4 -5
  209. reflex/components/recharts/polar.pyi +144 -181
  210. reflex/components/recharts/recharts.pyi +33 -53
  211. reflex/components/sonner/toast.py +16 -17
  212. reflex/components/sonner/toast.pyi +36 -47
  213. reflex/components/suneditor/editor.py +2 -3
  214. reflex/components/suneditor/editor.pyi +55 -78
  215. reflex/components/tags/cond_tag.py +6 -4
  216. reflex/components/tags/iter_tag.py +28 -16
  217. reflex/components/tags/match_tag.py +6 -4
  218. reflex/components/tags/tag.py +40 -23
  219. reflex/event.py +113 -65
  220. reflex/experimental/client_state.py +18 -18
  221. reflex/experimental/hooks.py +16 -16
  222. reflex/experimental/layout.py +5 -5
  223. reflex/experimental/layout.pyi +136 -187
  224. reflex/middleware/hydrate_middleware.py +2 -0
  225. reflex/middleware/middleware.py +3 -3
  226. reflex/state.py +148 -82
  227. reflex/style.py +21 -22
  228. reflex/utils/exceptions.py +16 -0
  229. reflex/utils/format.py +22 -34
  230. reflex/utils/imports.py +16 -73
  231. reflex/utils/prerequisites.py +15 -8
  232. reflex/utils/pyi_generator.py +13 -8
  233. reflex/utils/serializers.py +12 -22
  234. reflex/utils/telemetry.py +2 -1
  235. reflex/utils/types.py +10 -5
  236. reflex/{ivars → vars}/__init__.py +6 -2
  237. reflex/{ivars → vars}/base.py +567 -206
  238. reflex/{ivars → vars}/function.py +15 -19
  239. reflex/{ivars → vars}/number.py +16 -18
  240. reflex/{ivars → vars}/object.py +28 -30
  241. reflex/{ivars → vars}/sequence.py +53 -42
  242. {reflex-0.6.0a1.dist-info → reflex-0.6.0a2.dist-info}/METADATA +2 -2
  243. reflex-0.6.0a2.dist-info/RECORD +382 -0
  244. reflex/.templates/web/components/reflex/chakra_color_mode_provider.js +0 -36
  245. reflex/vars.py +0 -501
  246. reflex-0.6.0a1.dist-info/RECORD +0 -384
  247. {reflex-0.6.0a1.dist-info → reflex-0.6.0a2.dist-info}/LICENSE +0 -0
  248. {reflex-0.6.0a1.dist-info → reflex-0.6.0a2.dist-info}/WHEEL +0 -0
  249. {reflex-0.6.0a1.dist-info → reflex-0.6.0a2.dist-info}/entry_points.txt +0 -0
@@ -7,8 +7,8 @@ from typing import Any, Callable, Dict, Literal, Optional, Union, overload
7
7
 
8
8
  from reflex.components.component import Component, MemoizationLeaf, NoSSRComponent
9
9
  from reflex.event import EventHandler, EventSpec
10
- from reflex.ivars.base import ImmutableVar
11
10
  from reflex.style import Style
11
+ from reflex.vars.base import Var
12
12
 
13
13
  class Recharts(Component):
14
14
  def render(self) -> Dict: ...
@@ -22,51 +22,41 @@ class Recharts(Component):
22
22
  id: Optional[Any] = None,
23
23
  class_name: Optional[Any] = None,
24
24
  autofocus: Optional[bool] = None,
25
- custom_attrs: Optional[Dict[str, Union[ImmutableVar, str]]] = None,
26
- on_blur: Optional[
27
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
28
- ] = None,
29
- on_click: Optional[
30
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
31
- ] = None,
25
+ custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
26
+ on_blur: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
27
+ on_click: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
32
28
  on_context_menu: Optional[
33
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
29
+ Union[EventHandler, EventSpec, list, Callable, Var]
34
30
  ] = None,
35
31
  on_double_click: Optional[
36
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
37
- ] = None,
38
- on_focus: Optional[
39
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
40
- ] = None,
41
- on_mount: Optional[
42
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
32
+ Union[EventHandler, EventSpec, list, Callable, Var]
43
33
  ] = None,
34
+ on_focus: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
35
+ on_mount: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
44
36
  on_mouse_down: Optional[
45
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
37
+ Union[EventHandler, EventSpec, list, Callable, Var]
46
38
  ] = None,
47
39
  on_mouse_enter: Optional[
48
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
40
+ Union[EventHandler, EventSpec, list, Callable, Var]
49
41
  ] = None,
50
42
  on_mouse_leave: Optional[
51
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
43
+ Union[EventHandler, EventSpec, list, Callable, Var]
52
44
  ] = None,
53
45
  on_mouse_move: Optional[
54
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
46
+ Union[EventHandler, EventSpec, list, Callable, Var]
55
47
  ] = None,
56
48
  on_mouse_out: Optional[
57
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
49
+ Union[EventHandler, EventSpec, list, Callable, Var]
58
50
  ] = None,
59
51
  on_mouse_over: Optional[
60
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
52
+ Union[EventHandler, EventSpec, list, Callable, Var]
61
53
  ] = None,
62
54
  on_mouse_up: Optional[
63
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
64
- ] = None,
65
- on_scroll: Optional[
66
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
55
+ Union[EventHandler, EventSpec, list, Callable, Var]
67
56
  ] = None,
57
+ on_scroll: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
68
58
  on_unmount: Optional[
69
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
59
+ Union[EventHandler, EventSpec, list, Callable, Var]
70
60
  ] = None,
71
61
  **props,
72
62
  ) -> "Recharts":
@@ -98,51 +88,41 @@ class RechartsCharts(NoSSRComponent, MemoizationLeaf):
98
88
  id: Optional[Any] = None,
99
89
  class_name: Optional[Any] = None,
100
90
  autofocus: Optional[bool] = None,
101
- custom_attrs: Optional[Dict[str, Union[ImmutableVar, str]]] = None,
102
- on_blur: Optional[
103
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
104
- ] = None,
105
- on_click: Optional[
106
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
107
- ] = None,
91
+ custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
92
+ on_blur: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
93
+ on_click: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
108
94
  on_context_menu: Optional[
109
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
95
+ Union[EventHandler, EventSpec, list, Callable, Var]
110
96
  ] = None,
111
97
  on_double_click: Optional[
112
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
113
- ] = None,
114
- on_focus: Optional[
115
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
116
- ] = None,
117
- on_mount: Optional[
118
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
98
+ Union[EventHandler, EventSpec, list, Callable, Var]
119
99
  ] = None,
100
+ on_focus: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
101
+ on_mount: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
120
102
  on_mouse_down: Optional[
121
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
103
+ Union[EventHandler, EventSpec, list, Callable, Var]
122
104
  ] = None,
123
105
  on_mouse_enter: Optional[
124
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
106
+ Union[EventHandler, EventSpec, list, Callable, Var]
125
107
  ] = None,
126
108
  on_mouse_leave: Optional[
127
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
109
+ Union[EventHandler, EventSpec, list, Callable, Var]
128
110
  ] = None,
129
111
  on_mouse_move: Optional[
130
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
112
+ Union[EventHandler, EventSpec, list, Callable, Var]
131
113
  ] = None,
132
114
  on_mouse_out: Optional[
133
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
115
+ Union[EventHandler, EventSpec, list, Callable, Var]
134
116
  ] = None,
135
117
  on_mouse_over: Optional[
136
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
118
+ Union[EventHandler, EventSpec, list, Callable, Var]
137
119
  ] = None,
138
120
  on_mouse_up: Optional[
139
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
140
- ] = None,
141
- on_scroll: Optional[
142
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
121
+ Union[EventHandler, EventSpec, list, Callable, Var]
143
122
  ] = None,
123
+ on_scroll: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
144
124
  on_unmount: Optional[
145
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
125
+ Union[EventHandler, EventSpec, list, Callable, Var]
146
126
  ] = None,
147
127
  **props,
148
128
  ) -> "RechartsCharts":
@@ -14,12 +14,12 @@ from reflex.event import (
14
14
  EventSpec,
15
15
  call_script,
16
16
  )
17
- from reflex.ivars.base import ImmutableVar, LiteralVar
18
17
  from reflex.style import Style, resolved_color_mode
19
18
  from reflex.utils import format
20
19
  from reflex.utils.imports import ImportVar
21
20
  from reflex.utils.serializers import serialize, serializer
22
- from reflex.vars import Var, VarData
21
+ from reflex.vars import VarData
22
+ from reflex.vars.base import LiteralVar, Var
23
23
 
24
24
  LiteralPosition = Literal[
25
25
  "top-left",
@@ -30,7 +30,7 @@ LiteralPosition = Literal[
30
30
  "bottom-right",
31
31
  ]
32
32
 
33
- toast_ref = ImmutableVar.create_safe("refs['__toast']")
33
+ toast_ref = Var(_js_expr="refs['__toast']")
34
34
 
35
35
 
36
36
  class ToastAction(Base):
@@ -56,7 +56,7 @@ def serialize_action(action: ToastAction) -> dict:
56
56
  }
57
57
 
58
58
 
59
- def _toast_callback_signature(toast: Var) -> list[ImmutableVar]:
59
+ def _toast_callback_signature(toast: Var) -> list[Var]:
60
60
  """The signature for the toast callback, stripping out unserializable keys.
61
61
 
62
62
  Args:
@@ -66,8 +66,8 @@ def _toast_callback_signature(toast: Var) -> list[ImmutableVar]:
66
66
  A function call stripping non-serializable members of the toast object.
67
67
  """
68
68
  return [
69
- ImmutableVar.create_safe(
70
- f"(() => {{let {{action, cancel, onDismiss, onAutoClose, ...rest}} = {str(toast)}; return rest}})()"
69
+ Var(
70
+ _js_expr=f"(() => {{let {{action, cancel, onDismiss, onAutoClose, ...rest}} = {str(toast)}; return rest}})()"
71
71
  )
72
72
  ]
73
73
 
@@ -76,10 +76,10 @@ class ToastProps(PropsBase):
76
76
  """Props for the toast component."""
77
77
 
78
78
  # Toast's title, renders above the description.
79
- title: Optional[Union[str, ImmutableVar]]
79
+ title: Optional[Union[str, Var]]
80
80
 
81
81
  # Toast's description, renders underneath the title.
82
- description: Optional[Union[str, ImmutableVar]]
82
+ description: Optional[Union[str, Var]]
83
83
 
84
84
  # Whether to show the close button.
85
85
  close_button: Optional[bool]
@@ -111,7 +111,7 @@ class ToastProps(PropsBase):
111
111
  cancel: Optional[ToastAction]
112
112
 
113
113
  # Custom id for the toast.
114
- id: Optional[Union[str, ImmutableVar]]
114
+ id: Optional[Union[str, Var]]
115
115
 
116
116
  # Removes the default styling, which allows for easier customization.
117
117
  unstyled: Optional[bool]
@@ -241,14 +241,14 @@ class Toaster(Component):
241
241
  # Marked True when any Toast component is created.
242
242
  is_used: ClassVar[bool] = False
243
243
 
244
- def add_hooks(self) -> list[ImmutableVar | str]:
244
+ def add_hooks(self) -> list[Var | str]:
245
245
  """Add hooks for the toaster component.
246
246
 
247
247
  Returns:
248
248
  The hooks for the toaster component.
249
249
  """
250
- hook = ImmutableVar.create_safe(
251
- f"{toast_ref} = toast",
250
+ hook = Var(
251
+ _js_expr=f"{toast_ref} = toast",
252
252
  _var_data=VarData(
253
253
  imports={
254
254
  "/utils/state": [ImportVar(tag="refs")],
@@ -286,7 +286,7 @@ class Toaster(Component):
286
286
  else:
287
287
  toast = f"{toast_command}(`{message}`)"
288
288
 
289
- toast_action = ImmutableVar.create_safe(toast)
289
+ toast_action = Var(_js_expr=toast)
290
290
  return call_script(toast_action)
291
291
 
292
292
  @staticmethod
@@ -353,16 +353,15 @@ class Toaster(Component):
353
353
  """
354
354
  dismiss_var_data = None
355
355
 
356
- if isinstance(id, ImmutableVar):
356
+ if isinstance(id, Var):
357
357
  dismiss = f"{toast_ref}.dismiss({str(id)})"
358
358
  dismiss_var_data = id._get_all_var_data()
359
359
  elif isinstance(id, str):
360
360
  dismiss = f"{toast_ref}.dismiss('{id}')"
361
361
  else:
362
362
  dismiss = f"{toast_ref}.dismiss()"
363
- dismiss_action = ImmutableVar.create_safe(
364
- dismiss,
365
- _var_data=VarData.merge(dismiss_var_data),
363
+ dismiss_action = Var(
364
+ _js_expr=dismiss, _var_data=VarData.merge(dismiss_var_data)
366
365
  )
367
366
  return call_script(dismiss_action)
368
367
 
@@ -10,10 +10,9 @@ from reflex.components.component import Component, ComponentNamespace
10
10
  from reflex.components.lucide.icon import Icon
11
11
  from reflex.components.props import PropsBase
12
12
  from reflex.event import EventHandler, EventSpec
13
- from reflex.ivars.base import ImmutableVar
14
13
  from reflex.style import Style
15
14
  from reflex.utils.serializers import serializer
16
- from reflex.vars import Var
15
+ from reflex.vars.base import Var
17
16
 
18
17
  LiteralPosition = Literal[
19
18
  "top-left",
@@ -23,7 +22,7 @@ LiteralPosition = Literal[
23
22
  "bottom-center",
24
23
  "bottom-right",
25
24
  ]
26
- toast_ref = ImmutableVar.create_safe("refs['__toast']")
25
+ toast_ref = Var(_js_expr="refs['__toast']")
27
26
 
28
27
  class ToastAction(Base):
29
28
  label: str
@@ -33,8 +32,8 @@ class ToastAction(Base):
33
32
  def serialize_action(action: ToastAction) -> dict: ...
34
33
 
35
34
  class ToastProps(PropsBase):
36
- title: Optional[Union[str, ImmutableVar]]
37
- description: Optional[Union[str, ImmutableVar]]
35
+ title: Optional[Union[str, Var]]
36
+ description: Optional[Union[str, Var]]
38
37
  close_button: Optional[bool]
39
38
  invert: Optional[bool]
40
39
  important: Optional[bool]
@@ -43,7 +42,7 @@ class ToastProps(PropsBase):
43
42
  dismissible: Optional[bool]
44
43
  action: Optional[ToastAction]
45
44
  cancel: Optional[ToastAction]
46
- id: Optional[Union[str, ImmutableVar]]
45
+ id: Optional[Union[str, Var]]
47
46
  unstyled: Optional[bool]
48
47
  style: Optional[Style]
49
48
  action_button_styles: Optional[Style]
@@ -61,7 +60,7 @@ class ToastProps(PropsBase):
61
60
  class Toaster(Component):
62
61
  is_used: ClassVar[bool] = False
63
62
 
64
- def add_hooks(self) -> list[ImmutableVar | str]: ...
63
+ def add_hooks(self) -> list[Var | str]: ...
65
64
  @staticmethod
66
65
  def send_toast(
67
66
  message: str = "", level: str | None = None, **props
@@ -87,24 +86,24 @@ class Toaster(Component):
87
86
  visible_toasts: Optional[Union[Var[int], int]] = None,
88
87
  position: Optional[
89
88
  Union[
89
+ Literal[
90
+ "bottom-center",
91
+ "bottom-left",
92
+ "bottom-right",
93
+ "top-center",
94
+ "top-left",
95
+ "top-right",
96
+ ],
90
97
  Var[
91
98
  Literal[
92
- "top-left",
93
- "top-center",
94
- "top-right",
95
- "bottom-left",
96
99
  "bottom-center",
100
+ "bottom-left",
97
101
  "bottom-right",
102
+ "top-center",
103
+ "top-left",
104
+ "top-right",
98
105
  ]
99
106
  ],
100
- Literal[
101
- "top-left",
102
- "top-center",
103
- "top-right",
104
- "bottom-left",
105
- "bottom-center",
106
- "bottom-right",
107
- ],
108
107
  ]
109
108
  ] = None,
110
109
  close_button: Optional[Union[Var[bool], bool]] = None,
@@ -112,60 +111,50 @@ class Toaster(Component):
112
111
  dir: Optional[Union[Var[str], str]] = None,
113
112
  hotkey: Optional[Union[Var[str], str]] = None,
114
113
  invert: Optional[Union[Var[bool], bool]] = None,
115
- toast_options: Optional[Union[Var[ToastProps], ToastProps]] = None,
114
+ toast_options: Optional[Union[ToastProps, Var[ToastProps]]] = None,
116
115
  gap: Optional[Union[Var[int], int]] = None,
117
- loading_icon: Optional[Union[Var[Icon], Icon]] = None,
116
+ loading_icon: Optional[Union[Icon, Var[Icon]]] = None,
118
117
  pause_when_page_is_hidden: Optional[Union[Var[bool], bool]] = None,
119
118
  style: Optional[Style] = None,
120
119
  key: Optional[Any] = None,
121
120
  id: Optional[Any] = None,
122
121
  class_name: Optional[Any] = None,
123
122
  autofocus: Optional[bool] = None,
124
- custom_attrs: Optional[Dict[str, Union[ImmutableVar, str]]] = None,
125
- on_blur: Optional[
126
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
127
- ] = None,
128
- on_click: Optional[
129
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
130
- ] = None,
123
+ custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
124
+ on_blur: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
125
+ on_click: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
131
126
  on_context_menu: Optional[
132
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
127
+ Union[EventHandler, EventSpec, list, Callable, Var]
133
128
  ] = None,
134
129
  on_double_click: Optional[
135
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
136
- ] = None,
137
- on_focus: Optional[
138
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
139
- ] = None,
140
- on_mount: Optional[
141
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
130
+ Union[EventHandler, EventSpec, list, Callable, Var]
142
131
  ] = None,
132
+ on_focus: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
133
+ on_mount: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
143
134
  on_mouse_down: Optional[
144
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
135
+ Union[EventHandler, EventSpec, list, Callable, Var]
145
136
  ] = None,
146
137
  on_mouse_enter: Optional[
147
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
138
+ Union[EventHandler, EventSpec, list, Callable, Var]
148
139
  ] = None,
149
140
  on_mouse_leave: Optional[
150
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
141
+ Union[EventHandler, EventSpec, list, Callable, Var]
151
142
  ] = None,
152
143
  on_mouse_move: Optional[
153
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
144
+ Union[EventHandler, EventSpec, list, Callable, Var]
154
145
  ] = None,
155
146
  on_mouse_out: Optional[
156
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
147
+ Union[EventHandler, EventSpec, list, Callable, Var]
157
148
  ] = None,
158
149
  on_mouse_over: Optional[
159
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
150
+ Union[EventHandler, EventSpec, list, Callable, Var]
160
151
  ] = None,
161
152
  on_mouse_up: Optional[
162
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
163
- ] = None,
164
- on_scroll: Optional[
165
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
153
+ Union[EventHandler, EventSpec, list, Callable, Var]
166
154
  ] = None,
155
+ on_scroll: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
167
156
  on_unmount: Optional[
168
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
157
+ Union[EventHandler, EventSpec, list, Callable, Var]
169
158
  ] = None,
170
159
  **props,
171
160
  ) -> "Toaster":
@@ -8,10 +8,9 @@ from typing import Dict, List, Literal, Optional, Union
8
8
  from reflex.base import Base
9
9
  from reflex.components.component import Component, NoSSRComponent
10
10
  from reflex.event import EventHandler
11
- from reflex.ivars.base import ImmutableVar
12
11
  from reflex.utils.format import to_camel_case
13
12
  from reflex.utils.imports import ImportDict, ImportVar
14
- from reflex.vars import Var
13
+ from reflex.vars.base import Var
15
14
 
16
15
 
17
16
  class EditorButtonList(list, enum.Enum):
@@ -235,7 +234,7 @@ class Editor(NoSSRComponent):
235
234
  ValueError: If set_options is a state Var.
236
235
  """
237
236
  if set_options is not None:
238
- if isinstance(set_options, ImmutableVar):
237
+ if isinstance(set_options, Var):
239
238
  raise ValueError("EditorOptions cannot be a state Var")
240
239
  props["set_options"] = {
241
240
  to_camel_case(k): v
@@ -9,10 +9,9 @@ from typing import Any, Callable, Dict, List, Literal, Optional, Union, overload
9
9
  from reflex.base import Base
10
10
  from reflex.components.component import NoSSRComponent
11
11
  from reflex.event import EventHandler, EventSpec
12
- from reflex.ivars.base import ImmutableVar
13
12
  from reflex.style import Style
14
13
  from reflex.utils.imports import ImportDict
15
- from reflex.vars import Var
14
+ from reflex.vars.base import Var
16
15
 
17
16
  class EditorButtonList(list, enum.Enum):
18
17
  BASIC = [["font", "fontSize"], ["fontColor"], ["horizontalRule"], ["link", "image"]]
@@ -54,51 +53,51 @@ class Editor(NoSSRComponent):
54
53
  *children,
55
54
  lang: Optional[
56
55
  Union[
56
+ Literal[
57
+ "ckb",
58
+ "da",
59
+ "de",
60
+ "en",
61
+ "es",
62
+ "fr",
63
+ "he",
64
+ "it",
65
+ "ja",
66
+ "ko",
67
+ "lv",
68
+ "pl",
69
+ "pt_br",
70
+ "ro",
71
+ "ru",
72
+ "se",
73
+ "ua",
74
+ "zh_cn",
75
+ ],
57
76
  Var[
58
77
  Union[
59
78
  Literal[
60
- "en",
79
+ "ckb",
61
80
  "da",
62
81
  "de",
82
+ "en",
63
83
  "es",
64
84
  "fr",
85
+ "he",
86
+ "it",
65
87
  "ja",
66
88
  "ko",
89
+ "lv",
90
+ "pl",
67
91
  "pt_br",
68
- "ru",
69
- "zh_cn",
70
92
  "ro",
71
- "pl",
72
- "ckb",
73
- "lv",
93
+ "ru",
74
94
  "se",
75
95
  "ua",
76
- "he",
77
- "it",
96
+ "zh_cn",
78
97
  ],
79
98
  dict,
80
99
  ]
81
100
  ],
82
- Literal[
83
- "en",
84
- "da",
85
- "de",
86
- "es",
87
- "fr",
88
- "ja",
89
- "ko",
90
- "pt_br",
91
- "ru",
92
- "zh_cn",
93
- "ro",
94
- "pl",
95
- "ckb",
96
- "lv",
97
- "se",
98
- "ua",
99
- "he",
100
- "it",
101
- ],
102
101
  dict,
103
102
  ]
104
103
  ] = None,
@@ -108,7 +107,7 @@ class Editor(NoSSRComponent):
108
107
  height: Optional[Union[Var[str], str]] = None,
109
108
  placeholder: Optional[Union[Var[str], str]] = None,
110
109
  auto_focus: Optional[Union[Var[bool], bool]] = None,
111
- set_options: Optional[Union[Var[Dict], Dict]] = None,
110
+ set_options: Optional[Union[Dict, Var[Dict]]] = None,
112
111
  set_all_plugins: Optional[Union[Var[bool], bool]] = None,
113
112
  set_contents: Optional[Union[Var[str], str]] = None,
114
113
  append_contents: Optional[Union[Var[str], str]] = None,
@@ -122,78 +121,56 @@ class Editor(NoSSRComponent):
122
121
  id: Optional[Any] = None,
123
122
  class_name: Optional[Any] = None,
124
123
  autofocus: Optional[bool] = None,
125
- custom_attrs: Optional[Dict[str, Union[ImmutableVar, str]]] = None,
126
- on_blur: Optional[
127
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
128
- ] = None,
129
- on_change: Optional[
130
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
131
- ] = None,
132
- on_click: Optional[
133
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
134
- ] = None,
124
+ custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
125
+ on_blur: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
126
+ on_change: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
127
+ on_click: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
135
128
  on_context_menu: Optional[
136
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
137
- ] = None,
138
- on_copy: Optional[
139
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
140
- ] = None,
141
- on_cut: Optional[
142
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
129
+ Union[EventHandler, EventSpec, list, Callable, Var]
143
130
  ] = None,
131
+ on_copy: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
132
+ on_cut: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
144
133
  on_double_click: Optional[
145
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
146
- ] = None,
147
- on_focus: Optional[
148
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
149
- ] = None,
150
- on_input: Optional[
151
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
152
- ] = None,
153
- on_load: Optional[
154
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
155
- ] = None,
156
- on_mount: Optional[
157
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
134
+ Union[EventHandler, EventSpec, list, Callable, Var]
158
135
  ] = None,
136
+ on_focus: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
137
+ on_input: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
138
+ on_load: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
139
+ on_mount: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
159
140
  on_mouse_down: Optional[
160
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
141
+ Union[EventHandler, EventSpec, list, Callable, Var]
161
142
  ] = None,
162
143
  on_mouse_enter: Optional[
163
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
144
+ Union[EventHandler, EventSpec, list, Callable, Var]
164
145
  ] = None,
165
146
  on_mouse_leave: Optional[
166
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
147
+ Union[EventHandler, EventSpec, list, Callable, Var]
167
148
  ] = None,
168
149
  on_mouse_move: Optional[
169
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
150
+ Union[EventHandler, EventSpec, list, Callable, Var]
170
151
  ] = None,
171
152
  on_mouse_out: Optional[
172
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
153
+ Union[EventHandler, EventSpec, list, Callable, Var]
173
154
  ] = None,
174
155
  on_mouse_over: Optional[
175
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
156
+ Union[EventHandler, EventSpec, list, Callable, Var]
176
157
  ] = None,
177
158
  on_mouse_up: Optional[
178
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
179
- ] = None,
180
- on_paste: Optional[
181
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
159
+ Union[EventHandler, EventSpec, list, Callable, Var]
182
160
  ] = None,
161
+ on_paste: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
183
162
  on_resize_editor: Optional[
184
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
185
- ] = None,
186
- on_scroll: Optional[
187
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
163
+ Union[EventHandler, EventSpec, list, Callable, Var]
188
164
  ] = None,
165
+ on_scroll: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
189
166
  on_unmount: Optional[
190
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
167
+ Union[EventHandler, EventSpec, list, Callable, Var]
191
168
  ] = None,
192
169
  toggle_code_view: Optional[
193
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
170
+ Union[EventHandler, EventSpec, list, Callable, Var]
194
171
  ] = None,
195
172
  toggle_full_screen: Optional[
196
- Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
173
+ Union[EventHandler, EventSpec, list, Callable, Var]
197
174
  ] = None,
198
175
  **props,
199
176
  ) -> "Editor":
@@ -1,19 +1,21 @@
1
1
  """Tag to conditionally render components."""
2
2
 
3
+ import dataclasses
3
4
  from typing import Any, Dict, Optional
4
5
 
5
6
  from reflex.components.tags.tag import Tag
6
- from reflex.vars import Var
7
+ from reflex.vars.base import Var
7
8
 
8
9
 
10
+ @dataclasses.dataclass()
9
11
  class CondTag(Tag):
10
12
  """A conditional tag."""
11
13
 
12
14
  # The condition to determine which component to render.
13
- cond: Var[Any]
15
+ cond: Var[Any] = dataclasses.field(default_factory=lambda: Var.create(True))
14
16
 
15
17
  # The code to render if the condition is true.
16
- true_value: Dict
18
+ true_value: Dict = dataclasses.field(default_factory=dict)
17
19
 
18
20
  # The code to render if the condition is false.
19
- false_value: Optional[Dict]
21
+ false_value: Optional[Dict] = None