reflex 0.6.0a1__py3-none-any.whl → 0.6.0a3__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 (252) 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/__init__.py +8 -2
  5. reflex/__init__.pyi +2 -1
  6. reflex/app.py +10 -4
  7. reflex/base.py +1 -1
  8. reflex/compiler/compiler.py +2 -2
  9. reflex/compiler/utils.py +3 -3
  10. reflex/components/base/app_wrap.py +2 -2
  11. reflex/components/base/app_wrap.pyi +17 -27
  12. reflex/components/base/bare.py +4 -5
  13. reflex/components/base/body.pyi +17 -27
  14. reflex/components/base/document.pyi +81 -131
  15. reflex/components/base/error_boundary.py +6 -7
  16. reflex/components/base/error_boundary.pyi +20 -33
  17. reflex/components/base/fragment.pyi +17 -27
  18. reflex/components/base/head.pyi +33 -53
  19. reflex/components/base/link.py +1 -1
  20. reflex/components/base/link.pyi +33 -54
  21. reflex/components/base/meta.pyi +65 -105
  22. reflex/components/base/script.py +1 -2
  23. reflex/components/base/script.pyi +21 -38
  24. reflex/components/component.py +45 -47
  25. reflex/components/core/banner.py +23 -27
  26. reflex/components/core/banner.pyi +134 -171
  27. reflex/components/core/breakpoints.py +3 -1
  28. reflex/components/core/client_side_routing.py +2 -3
  29. reflex/components/core/client_side_routing.pyi +33 -54
  30. reflex/components/core/clipboard.py +2 -1
  31. reflex/components/core/clipboard.pyi +20 -33
  32. reflex/components/core/cond.py +5 -5
  33. reflex/components/core/debounce.py +5 -5
  34. reflex/components/core/debounce.pyi +20 -33
  35. reflex/components/core/foreach.py +3 -4
  36. reflex/components/core/html.py +1 -1
  37. reflex/components/core/html.pyi +35 -46
  38. reflex/components/core/match.py +17 -17
  39. reflex/components/core/upload.py +17 -23
  40. reflex/components/core/upload.pyi +78 -124
  41. reflex/components/datadisplay/code.py +9 -10
  42. reflex/components/datadisplay/code.pyi +302 -412
  43. reflex/components/datadisplay/dataeditor.py +8 -10
  44. reflex/components/datadisplay/dataeditor.pyi +40 -53
  45. reflex/components/el/element.pyi +17 -27
  46. reflex/components/el/elements/base.py +1 -1
  47. reflex/components/el/elements/base.pyi +34 -45
  48. reflex/components/el/elements/forms.py +16 -16
  49. reflex/components/el/elements/forms.pyi +554 -707
  50. reflex/components/el/elements/inline.py +1 -1
  51. reflex/components/el/elements/inline.pyi +937 -1218
  52. reflex/components/el/elements/media.py +1 -1
  53. reflex/components/el/elements/media.pyi +786 -997
  54. reflex/components/el/elements/metadata.py +3 -6
  55. reflex/components/el/elements/metadata.pyi +181 -242
  56. reflex/components/el/elements/other.py +1 -1
  57. reflex/components/el/elements/other.pyi +235 -306
  58. reflex/components/el/elements/scripts.py +1 -1
  59. reflex/components/el/elements/scripts.pyi +109 -140
  60. reflex/components/el/elements/sectioning.py +0 -2
  61. reflex/components/el/elements/sectioning.pyi +496 -647
  62. reflex/components/el/elements/tables.py +1 -1
  63. reflex/components/el/elements/tables.pyi +351 -452
  64. reflex/components/el/elements/typography.py +1 -1
  65. reflex/components/el/elements/typography.pyi +506 -657
  66. reflex/components/gridjs/datatable.py +6 -9
  67. reflex/components/gridjs/datatable.pyi +35 -56
  68. reflex/components/lucide/icon.py +1 -1
  69. reflex/components/lucide/icon.pyi +33 -54
  70. reflex/components/markdown/markdown.py +26 -31
  71. reflex/components/markdown/markdown.pyi +27 -37
  72. reflex/components/moment/moment.py +13 -12
  73. reflex/components/moment/moment.pyi +23 -35
  74. reflex/components/next/base.pyi +17 -27
  75. reflex/components/next/image.py +1 -1
  76. reflex/components/next/image.pyi +22 -37
  77. reflex/components/next/link.py +1 -1
  78. reflex/components/next/link.pyi +17 -28
  79. reflex/components/next/video.py +1 -1
  80. reflex/components/next/video.pyi +17 -28
  81. reflex/components/plotly/plotly.py +12 -13
  82. reflex/components/plotly/plotly.pyi +39 -54
  83. reflex/components/props.py +1 -1
  84. reflex/components/radix/__init__.pyi +1 -0
  85. reflex/components/radix/primitives/__init__.pyi +1 -0
  86. reflex/components/radix/primitives/accordion.py +4 -4
  87. reflex/components/radix/primitives/accordion.pyi +424 -495
  88. reflex/components/radix/primitives/base.py +1 -1
  89. reflex/components/radix/primitives/base.pyi +33 -54
  90. reflex/components/radix/primitives/drawer.py +1 -1
  91. reflex/components/radix/primitives/drawer.pyi +172 -273
  92. reflex/components/radix/primitives/form.py +1 -1
  93. reflex/components/radix/primitives/form.pyi +257 -364
  94. reflex/components/radix/primitives/progress.py +1 -1
  95. reflex/components/radix/primitives/progress.pyi +231 -282
  96. reflex/components/radix/primitives/slider.py +1 -1
  97. reflex/components/radix/primitives/slider.pyi +87 -138
  98. reflex/components/radix/themes/base.py +3 -24
  99. reflex/components/radix/themes/base.pyi +178 -250
  100. reflex/components/radix/themes/color_mode.py +5 -5
  101. reflex/components/radix/themes/color_mode.pyi +187 -220
  102. reflex/components/radix/themes/components/alert_dialog.py +1 -1
  103. reflex/components/radix/themes/components/alert_dialog.pyi +136 -207
  104. reflex/components/radix/themes/components/aspect_ratio.py +1 -1
  105. reflex/components/radix/themes/components/aspect_ratio.pyi +17 -28
  106. reflex/components/radix/themes/components/avatar.py +1 -1
  107. reflex/components/radix/themes/components/avatar.pyi +70 -81
  108. reflex/components/radix/themes/components/badge.py +1 -1
  109. reflex/components/radix/themes/components/badge.pyi +88 -99
  110. reflex/components/radix/themes/components/button.py +1 -1
  111. reflex/components/radix/themes/components/button.pyi +98 -109
  112. reflex/components/radix/themes/components/callout.py +1 -1
  113. reflex/components/radix/themes/components/callout.pyi +322 -373
  114. reflex/components/radix/themes/components/card.py +1 -1
  115. reflex/components/radix/themes/components/card.pyi +38 -49
  116. reflex/components/radix/themes/components/checkbox.py +1 -2
  117. reflex/components/radix/themes/components/checkbox.pyi +208 -245
  118. reflex/components/radix/themes/components/checkbox_cards.py +1 -1
  119. reflex/components/radix/themes/components/checkbox_cards.pyi +94 -115
  120. reflex/components/radix/themes/components/checkbox_group.py +1 -1
  121. reflex/components/radix/themes/components/checkbox_group.pyi +86 -107
  122. reflex/components/radix/themes/components/context_menu.py +1 -1
  123. reflex/components/radix/themes/components/context_menu.pyi +238 -319
  124. reflex/components/radix/themes/components/data_list.py +1 -1
  125. reflex/components/radix/themes/components/data_list.pyi +130 -171
  126. reflex/components/radix/themes/components/dialog.py +1 -1
  127. reflex/components/radix/themes/components/dialog.pyi +139 -210
  128. reflex/components/radix/themes/components/dropdown_menu.py +1 -1
  129. reflex/components/radix/themes/components/dropdown_menu.pyi +249 -332
  130. reflex/components/radix/themes/components/hover_card.py +1 -1
  131. reflex/components/radix/themes/components/hover_card.pyi +90 -131
  132. reflex/components/radix/themes/components/icon_button.py +2 -3
  133. reflex/components/radix/themes/components/icon_button.pyi +98 -109
  134. reflex/components/radix/themes/components/inset.py +1 -1
  135. reflex/components/radix/themes/components/inset.pyi +47 -58
  136. reflex/components/radix/themes/components/popover.py +1 -1
  137. reflex/components/radix/themes/components/popover.pyi +95 -136
  138. reflex/components/radix/themes/components/progress.py +1 -1
  139. reflex/components/radix/themes/components/progress.pyi +71 -82
  140. reflex/components/radix/themes/components/radio.py +1 -1
  141. reflex/components/radix/themes/components/radio.pyi +69 -80
  142. reflex/components/radix/themes/components/radio_cards.py +1 -1
  143. reflex/components/radix/themes/components/radio_cards.pyi +98 -119
  144. reflex/components/radix/themes/components/radio_group.py +8 -11
  145. reflex/components/radix/themes/components/radio_group.pyi +228 -271
  146. reflex/components/radix/themes/components/scroll_area.py +1 -1
  147. reflex/components/radix/themes/components/scroll_area.pyi +21 -32
  148. reflex/components/radix/themes/components/segmented_control.py +1 -1
  149. reflex/components/radix/themes/components/segmented_control.pyi +90 -113
  150. reflex/components/radix/themes/components/select.py +2 -3
  151. reflex/components/radix/themes/components/select.pyi +374 -471
  152. reflex/components/radix/themes/components/separator.py +1 -2
  153. reflex/components/radix/themes/components/separator.pyi +69 -80
  154. reflex/components/radix/themes/components/skeleton.py +1 -1
  155. reflex/components/radix/themes/components/skeleton.pyi +23 -34
  156. reflex/components/radix/themes/components/slider.py +2 -3
  157. reflex/components/radix/themes/components/slider.pyi +75 -88
  158. reflex/components/radix/themes/components/spinner.py +1 -1
  159. reflex/components/radix/themes/components/spinner.pyi +19 -30
  160. reflex/components/radix/themes/components/switch.py +1 -1
  161. reflex/components/radix/themes/components/switch.pyi +71 -84
  162. reflex/components/radix/themes/components/table.py +1 -1
  163. reflex/components/radix/themes/components/table.pyi +261 -332
  164. reflex/components/radix/themes/components/tabs.py +1 -1
  165. reflex/components/radix/themes/components/tabs.pyi +139 -194
  166. reflex/components/radix/themes/components/text_area.py +1 -1
  167. reflex/components/radix/themes/components/text_area.pyi +96 -111
  168. reflex/components/radix/themes/components/text_field.py +1 -1
  169. reflex/components/radix/themes/components/text_field.pyi +247 -286
  170. reflex/components/radix/themes/components/tooltip.py +1 -1
  171. reflex/components/radix/themes/components/tooltip.pyi +26 -37
  172. reflex/components/radix/themes/layout/__init__.pyi +1 -0
  173. reflex/components/radix/themes/layout/base.py +1 -1
  174. reflex/components/radix/themes/layout/base.pyi +56 -67
  175. reflex/components/radix/themes/layout/box.pyi +34 -45
  176. reflex/components/radix/themes/layout/center.pyi +56 -67
  177. reflex/components/radix/themes/layout/container.py +1 -2
  178. reflex/components/radix/themes/layout/container.pyi +36 -47
  179. reflex/components/radix/themes/layout/flex.py +1 -1
  180. reflex/components/radix/themes/layout/flex.pyi +56 -67
  181. reflex/components/radix/themes/layout/grid.py +1 -1
  182. reflex/components/radix/themes/layout/grid.pyi +64 -75
  183. reflex/components/radix/themes/layout/list.py +5 -6
  184. reflex/components/radix/themes/layout/list.pyi +193 -244
  185. reflex/components/radix/themes/layout/section.py +1 -2
  186. reflex/components/radix/themes/layout/section.pyi +36 -47
  187. reflex/components/radix/themes/layout/spacer.pyi +56 -67
  188. reflex/components/radix/themes/layout/stack.py +1 -1
  189. reflex/components/radix/themes/layout/stack.pyi +128 -159
  190. reflex/components/radix/themes/typography/blockquote.py +1 -1
  191. reflex/components/radix/themes/typography/blockquote.pyi +89 -100
  192. reflex/components/radix/themes/typography/code.py +1 -1
  193. reflex/components/radix/themes/typography/code.pyi +90 -101
  194. reflex/components/radix/themes/typography/heading.py +1 -1
  195. reflex/components/radix/themes/typography/heading.pyi +96 -107
  196. reflex/components/radix/themes/typography/link.py +1 -1
  197. reflex/components/radix/themes/typography/link.pyi +102 -113
  198. reflex/components/radix/themes/typography/text.py +1 -1
  199. reflex/components/radix/themes/typography/text.pyi +501 -572
  200. reflex/components/react_player/audio.pyi +33 -60
  201. reflex/components/react_player/react_player.py +1 -1
  202. reflex/components/react_player/react_player.pyi +33 -60
  203. reflex/components/react_player/video.pyi +33 -60
  204. reflex/components/recharts/cartesian.py +2 -3
  205. reflex/components/recharts/cartesian.pyi +678 -861
  206. reflex/components/recharts/charts.py +4 -5
  207. reflex/components/recharts/charts.pyi +252 -357
  208. reflex/components/recharts/general.py +1 -2
  209. reflex/components/recharts/general.pyi +180 -231
  210. reflex/components/recharts/polar.py +4 -5
  211. reflex/components/recharts/polar.pyi +144 -181
  212. reflex/components/recharts/recharts.pyi +33 -53
  213. reflex/components/sonner/toast.py +16 -17
  214. reflex/components/sonner/toast.pyi +36 -47
  215. reflex/components/suneditor/editor.py +2 -3
  216. reflex/components/suneditor/editor.pyi +55 -78
  217. reflex/components/tags/cond_tag.py +6 -4
  218. reflex/components/tags/iter_tag.py +28 -16
  219. reflex/components/tags/match_tag.py +6 -4
  220. reflex/components/tags/tag.py +40 -23
  221. reflex/custom_components/custom_components.py +3 -1
  222. reflex/event.py +115 -67
  223. reflex/experimental/client_state.py +18 -18
  224. reflex/experimental/hooks.py +16 -16
  225. reflex/experimental/layout.py +5 -5
  226. reflex/experimental/layout.pyi +136 -187
  227. reflex/middleware/hydrate_middleware.py +2 -0
  228. reflex/middleware/middleware.py +3 -3
  229. reflex/state.py +149 -82
  230. reflex/style.py +21 -22
  231. reflex/utils/exceptions.py +20 -0
  232. reflex/utils/format.py +54 -34
  233. reflex/utils/imports.py +16 -73
  234. reflex/utils/prerequisites.py +15 -8
  235. reflex/utils/pyi_generator.py +13 -8
  236. reflex/utils/serializers.py +12 -22
  237. reflex/utils/telemetry.py +3 -2
  238. reflex/utils/types.py +11 -6
  239. reflex/{ivars → vars}/__init__.py +6 -2
  240. reflex/{ivars → vars}/base.py +599 -216
  241. reflex/{ivars → vars}/function.py +15 -19
  242. reflex/{ivars → vars}/number.py +41 -20
  243. reflex/{ivars → vars}/object.py +28 -30
  244. reflex/{ivars → vars}/sequence.py +53 -42
  245. {reflex-0.6.0a1.dist-info → reflex-0.6.0a3.dist-info}/METADATA +4 -6
  246. reflex-0.6.0a3.dist-info/RECORD +382 -0
  247. reflex/.templates/web/components/reflex/chakra_color_mode_provider.js +0 -36
  248. reflex/vars.py +0 -501
  249. reflex-0.6.0a1.dist-info/RECORD +0 -384
  250. {reflex-0.6.0a1.dist-info → reflex-0.6.0a3.dist-info}/LICENSE +0 -0
  251. {reflex-0.6.0a1.dist-info → reflex-0.6.0a3.dist-info}/WHEEL +0 -0
  252. {reflex-0.6.0a1.dist-info → reflex-0.6.0a3.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