reflex 0.5.10a3__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 (237) hide show
  1. reflex/.templates/jinja/web/pages/utils.js.jinja2 +4 -4
  2. reflex/.templates/jinja/web/utils/context.js.jinja2 +1 -1
  3. reflex/.templates/jinja/web/utils/theme.js.jinja2 +1 -1
  4. reflex/__init__.py +3 -2
  5. reflex/__init__.pyi +2 -2
  6. reflex/app.py +43 -9
  7. reflex/base.py +3 -2
  8. reflex/compiler/compiler.py +6 -6
  9. reflex/compiler/utils.py +5 -3
  10. reflex/components/base/app_wrap.py +2 -4
  11. reflex/components/base/app_wrap.pyi +17 -17
  12. reflex/components/base/bare.py +7 -4
  13. reflex/components/base/body.pyi +17 -17
  14. reflex/components/base/document.pyi +81 -81
  15. reflex/components/base/error_boundary.py +10 -8
  16. reflex/components/base/error_boundary.pyi +20 -19
  17. reflex/components/base/fragment.pyi +17 -17
  18. reflex/components/base/head.pyi +33 -33
  19. reflex/components/base/link.pyi +34 -33
  20. reflex/components/base/meta.pyi +65 -65
  21. reflex/components/base/script.py +2 -1
  22. reflex/components/base/script.pyi +21 -20
  23. reflex/components/component.py +116 -145
  24. reflex/components/core/banner.py +59 -60
  25. reflex/components/core/banner.pyi +86 -150
  26. reflex/components/core/client_side_routing.py +2 -1
  27. reflex/components/core/client_side_routing.pyi +34 -33
  28. reflex/components/core/clipboard.py +2 -2
  29. reflex/components/core/clipboard.pyi +19 -18
  30. reflex/components/core/cond.py +21 -44
  31. reflex/components/core/debounce.py +6 -8
  32. reflex/components/core/debounce.pyi +19 -18
  33. reflex/components/core/foreach.py +5 -14
  34. reflex/components/core/html.pyi +18 -17
  35. reflex/components/core/match.py +36 -43
  36. reflex/components/core/upload.py +32 -25
  37. reflex/components/core/upload.pyi +84 -73
  38. reflex/components/datadisplay/code.py +55 -28
  39. reflex/components/datadisplay/code.pyi +20 -17
  40. reflex/components/datadisplay/dataeditor.py +17 -11
  41. reflex/components/datadisplay/dataeditor.pyi +34 -33
  42. reflex/components/el/__init__.py +0 -1
  43. reflex/components/el/__init__.pyi +0 -11
  44. reflex/components/el/element.pyi +17 -17
  45. reflex/components/el/elements/__init__.py +1 -7
  46. reflex/components/el/elements/__init__.pyi +1 -15
  47. reflex/components/el/elements/base.pyi +18 -17
  48. reflex/components/el/elements/forms.py +24 -31
  49. reflex/components/el/elements/forms.pyi +237 -236
  50. reflex/components/el/elements/inline.pyi +450 -449
  51. reflex/components/el/elements/media.py +0 -21
  52. reflex/components/el/elements/media.pyi +338 -337
  53. reflex/components/el/elements/metadata.py +3 -2
  54. reflex/components/el/elements/metadata.pyi +98 -97
  55. reflex/components/el/elements/other.pyi +114 -113
  56. reflex/components/el/elements/scripts.pyi +50 -49
  57. reflex/components/el/elements/sectioning.pyi +242 -241
  58. reflex/components/el/elements/tables.pyi +162 -161
  59. reflex/components/el/elements/typography.pyi +242 -241
  60. reflex/components/gridjs/datatable.py +13 -14
  61. reflex/components/gridjs/datatable.pyi +34 -33
  62. reflex/components/lucide/icon.py +2 -126
  63. reflex/components/lucide/icon.pyi +34 -142
  64. reflex/components/markdown/markdown.py +30 -35
  65. reflex/components/markdown/markdown.pyi +29 -32
  66. reflex/components/moment/moment.pyi +19 -18
  67. reflex/components/next/base.pyi +17 -17
  68. reflex/components/next/image.py +0 -4
  69. reflex/components/next/image.pyi +20 -19
  70. reflex/components/next/link.pyi +18 -17
  71. reflex/components/next/video.pyi +18 -17
  72. reflex/components/plotly/plotly.py +16 -28
  73. reflex/components/plotly/plotly.pyi +36 -35
  74. reflex/components/props.py +21 -10
  75. reflex/components/radix/__init__.pyi +1 -1
  76. reflex/components/radix/primitives/__init__.pyi +0 -1
  77. reflex/components/radix/primitives/accordion.py +7 -8
  78. reflex/components/radix/primitives/accordion.pyi +117 -116
  79. reflex/components/radix/primitives/base.pyi +34 -33
  80. reflex/components/radix/primitives/drawer.pyi +169 -168
  81. reflex/components/radix/primitives/form.pyi +168 -167
  82. reflex/components/radix/primitives/progress.pyi +82 -81
  83. reflex/components/radix/primitives/slider.pyi +84 -83
  84. reflex/components/radix/themes/base.py +8 -4
  85. reflex/components/radix/themes/base.pyi +114 -113
  86. reflex/components/radix/themes/color_mode.py +12 -21
  87. reflex/components/radix/themes/color_mode.pyi +67 -67
  88. reflex/components/radix/themes/components/__init__.pyi +1 -0
  89. reflex/components/radix/themes/components/alert_dialog.pyi +118 -117
  90. reflex/components/radix/themes/components/aspect_ratio.pyi +18 -17
  91. reflex/components/radix/themes/components/avatar.pyi +18 -17
  92. reflex/components/radix/themes/components/badge.pyi +18 -17
  93. reflex/components/radix/themes/components/button.pyi +18 -17
  94. reflex/components/radix/themes/components/callout.pyi +82 -81
  95. reflex/components/radix/themes/components/card.pyi +18 -17
  96. reflex/components/radix/themes/components/checkbox.py +2 -3
  97. reflex/components/radix/themes/components/checkbox.pyi +53 -52
  98. reflex/components/radix/themes/components/checkbox_cards.pyi +34 -33
  99. reflex/components/radix/themes/components/checkbox_group.pyi +34 -33
  100. reflex/components/radix/themes/components/context_menu.pyi +140 -139
  101. reflex/components/radix/themes/components/data_list.py +5 -0
  102. reflex/components/radix/themes/components/data_list.pyi +71 -65
  103. reflex/components/radix/themes/components/dialog.pyi +121 -120
  104. reflex/components/radix/themes/components/dropdown_menu.pyi +142 -141
  105. reflex/components/radix/themes/components/hover_card.pyi +68 -67
  106. reflex/components/radix/themes/components/icon_button.py +2 -1
  107. reflex/components/radix/themes/components/icon_button.pyi +18 -17
  108. reflex/components/radix/themes/components/inset.pyi +18 -17
  109. reflex/components/radix/themes/components/popover.pyi +73 -72
  110. reflex/components/radix/themes/components/progress.pyi +18 -17
  111. reflex/components/radix/themes/components/radio.pyi +18 -17
  112. reflex/components/radix/themes/components/radio_cards.pyi +35 -34
  113. reflex/components/radix/themes/components/radio_group.py +35 -31
  114. reflex/components/radix/themes/components/radio_group.pyi +73 -66
  115. reflex/components/radix/themes/components/scroll_area.pyi +18 -17
  116. reflex/components/radix/themes/components/segmented_control.pyi +35 -34
  117. reflex/components/radix/themes/components/select.py +2 -1
  118. reflex/components/radix/themes/components/select.pyi +155 -154
  119. reflex/components/radix/themes/components/separator.py +2 -3
  120. reflex/components/radix/themes/components/separator.pyi +18 -17
  121. reflex/components/radix/themes/components/skeleton.pyi +18 -17
  122. reflex/components/radix/themes/components/slider.py +2 -1
  123. reflex/components/radix/themes/components/slider.pyi +20 -19
  124. reflex/components/radix/themes/components/spinner.pyi +18 -17
  125. reflex/components/radix/themes/components/switch.pyi +19 -18
  126. reflex/components/radix/themes/components/table.pyi +114 -113
  127. reflex/components/radix/themes/components/tabs.pyi +84 -83
  128. reflex/components/radix/themes/components/text_area.pyi +21 -20
  129. reflex/components/radix/themes/components/text_field.py +0 -79
  130. reflex/components/radix/themes/components/text_field.pyi +57 -63
  131. reflex/components/radix/themes/components/tooltip.pyi +21 -20
  132. reflex/components/radix/themes/layout/base.pyi +18 -17
  133. reflex/components/radix/themes/layout/box.pyi +18 -17
  134. reflex/components/radix/themes/layout/center.pyi +18 -17
  135. reflex/components/radix/themes/layout/container.py +2 -3
  136. reflex/components/radix/themes/layout/container.pyi +18 -17
  137. reflex/components/radix/themes/layout/flex.pyi +18 -17
  138. reflex/components/radix/themes/layout/grid.pyi +18 -17
  139. reflex/components/radix/themes/layout/list.py +5 -4
  140. reflex/components/radix/themes/layout/list.pyi +86 -85
  141. reflex/components/radix/themes/layout/section.py +2 -3
  142. reflex/components/radix/themes/layout/section.pyi +18 -17
  143. reflex/components/radix/themes/layout/spacer.pyi +18 -17
  144. reflex/components/radix/themes/layout/stack.pyi +50 -49
  145. reflex/components/radix/themes/typography/blockquote.pyi +18 -17
  146. reflex/components/radix/themes/typography/code.pyi +18 -17
  147. reflex/components/radix/themes/typography/heading.pyi +18 -17
  148. reflex/components/radix/themes/typography/link.pyi +18 -17
  149. reflex/components/radix/themes/typography/text.pyi +114 -113
  150. reflex/components/react_player/audio.pyi +34 -33
  151. reflex/components/react_player/react_player.pyi +34 -33
  152. reflex/components/react_player/video.pyi +34 -33
  153. reflex/components/recharts/cartesian.py +23 -19
  154. reflex/components/recharts/cartesian.pyi +297 -296
  155. reflex/components/recharts/charts.py +6 -5
  156. reflex/components/recharts/charts.pyi +179 -178
  157. reflex/components/recharts/general.py +8 -7
  158. reflex/components/recharts/general.pyi +82 -81
  159. reflex/components/recharts/polar.py +14 -13
  160. reflex/components/recharts/polar.pyi +76 -75
  161. reflex/components/recharts/recharts.pyi +33 -33
  162. reflex/components/sonner/toast.py +30 -33
  163. reflex/components/sonner/toast.pyi +27 -25
  164. reflex/components/suneditor/editor.py +2 -1
  165. reflex/components/suneditor/editor.pyi +27 -26
  166. reflex/components/tags/iter_tag.py +16 -16
  167. reflex/components/tags/tag.py +8 -10
  168. reflex/constants/base.py +3 -1
  169. reflex/constants/event.py +1 -0
  170. reflex/event.py +89 -79
  171. reflex/experimental/__init__.py +25 -6
  172. reflex/experimental/client_state.py +34 -58
  173. reflex/experimental/hooks.py +13 -18
  174. reflex/experimental/layout.py +5 -5
  175. reflex/experimental/layout.pyi +84 -83
  176. reflex/{experimental/vars → ivars}/__init__.py +0 -1
  177. reflex/ivars/base.py +2180 -0
  178. reflex/ivars/function.py +200 -0
  179. reflex/ivars/number.py +1137 -0
  180. reflex/ivars/object.py +564 -0
  181. reflex/ivars/sequence.py +1601 -0
  182. reflex/model.py +22 -0
  183. reflex/reflex.py +4 -0
  184. reflex/state.py +388 -73
  185. reflex/style.py +52 -34
  186. reflex/testing.py +8 -3
  187. reflex/utils/exceptions.py +12 -0
  188. reflex/utils/exec.py +0 -14
  189. reflex/utils/format.py +74 -223
  190. reflex/utils/net.py +43 -0
  191. reflex/utils/path_ops.py +13 -1
  192. reflex/utils/prerequisites.py +46 -26
  193. reflex/utils/pyi_generator.py +5 -4
  194. reflex/utils/serializers.py +13 -31
  195. reflex/utils/types.py +44 -9
  196. reflex/vars.py +127 -2230
  197. {reflex-0.5.10a3.dist-info → reflex-0.6.0a1.dist-info}/METADATA +4 -6
  198. reflex-0.6.0a1.dist-info/RECORD +384 -0
  199. reflex/.templates/apps/demo/.gitignore +0 -4
  200. reflex/.templates/apps/demo/assets/favicon.ico +0 -0
  201. reflex/.templates/apps/demo/assets/github.svg +0 -10
  202. reflex/.templates/apps/demo/assets/icon.svg +0 -37
  203. reflex/.templates/apps/demo/assets/logo.svg +0 -68
  204. reflex/.templates/apps/demo/assets/paneleft.svg +0 -13
  205. reflex/.templates/apps/demo/code/__init__.py +0 -1
  206. reflex/.templates/apps/demo/code/demo.py +0 -127
  207. reflex/.templates/apps/demo/code/pages/__init__.py +0 -7
  208. reflex/.templates/apps/demo/code/pages/chatapp.py +0 -31
  209. reflex/.templates/apps/demo/code/pages/datatable.py +0 -360
  210. reflex/.templates/apps/demo/code/pages/forms.py +0 -257
  211. reflex/.templates/apps/demo/code/pages/graphing.py +0 -253
  212. reflex/.templates/apps/demo/code/pages/home.py +0 -56
  213. reflex/.templates/apps/demo/code/sidebar.py +0 -178
  214. reflex/.templates/apps/demo/code/state.py +0 -22
  215. reflex/.templates/apps/demo/code/states/form_state.py +0 -40
  216. reflex/.templates/apps/demo/code/states/pie_state.py +0 -47
  217. reflex/.templates/apps/demo/code/styles.py +0 -68
  218. reflex/.templates/apps/demo/code/webui/__init__.py +0 -0
  219. reflex/.templates/apps/demo/code/webui/components/__init__.py +0 -4
  220. reflex/.templates/apps/demo/code/webui/components/chat.py +0 -118
  221. reflex/.templates/apps/demo/code/webui/components/loading_icon.py +0 -19
  222. reflex/.templates/apps/demo/code/webui/components/modal.py +0 -56
  223. reflex/.templates/apps/demo/code/webui/components/navbar.py +0 -70
  224. reflex/.templates/apps/demo/code/webui/components/sidebar.py +0 -66
  225. reflex/.templates/apps/demo/code/webui/state.py +0 -146
  226. reflex/.templates/apps/demo/code/webui/styles.py +0 -88
  227. reflex/experimental/vars/base.py +0 -583
  228. reflex/experimental/vars/function.py +0 -290
  229. reflex/experimental/vars/number.py +0 -1458
  230. reflex/experimental/vars/object.py +0 -804
  231. reflex/experimental/vars/sequence.py +0 -1764
  232. reflex/utils/watch.py +0 -96
  233. reflex/vars.pyi +0 -218
  234. reflex-0.5.10a3.dist-info/RECORD +0 -413
  235. {reflex-0.5.10a3.dist-info → reflex-0.6.0a1.dist-info}/LICENSE +0 -0
  236. {reflex-0.5.10a3.dist-info → reflex-0.6.0a1.dist-info}/WHEEL +0 -0
  237. {reflex-0.5.10a3.dist-info → reflex-0.6.0a1.dist-info}/entry_points.txt +0 -0
@@ -7,9 +7,10 @@ from typing import Any, Callable, Dict, Literal, Optional, Union, overload
7
7
 
8
8
  from reflex.components 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
12
  from reflex.utils.imports import ImportDict
12
- from reflex.vars import BaseVar, Var
13
+ from reflex.vars import Var
13
14
 
14
15
  LiteralAlign = Literal["start", "center", "end", "baseline", "stretch"]
15
16
  LiteralJustify = Literal["start", "center", "end", "between"]
@@ -102,51 +103,51 @@ class CommonMarginProps(Component):
102
103
  id: Optional[Any] = None,
103
104
  class_name: Optional[Any] = None,
104
105
  autofocus: Optional[bool] = None,
105
- custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
106
+ custom_attrs: Optional[Dict[str, Union[ImmutableVar, str]]] = None,
106
107
  on_blur: Optional[
107
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
108
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
108
109
  ] = None,
109
110
  on_click: Optional[
110
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
111
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
111
112
  ] = None,
112
113
  on_context_menu: Optional[
113
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
114
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
114
115
  ] = None,
115
116
  on_double_click: Optional[
116
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
117
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
117
118
  ] = None,
118
119
  on_focus: Optional[
119
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
120
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
120
121
  ] = None,
121
122
  on_mount: Optional[
122
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
123
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
123
124
  ] = None,
124
125
  on_mouse_down: Optional[
125
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
126
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
126
127
  ] = None,
127
128
  on_mouse_enter: Optional[
128
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
129
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
129
130
  ] = None,
130
131
  on_mouse_leave: Optional[
131
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
132
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
132
133
  ] = None,
133
134
  on_mouse_move: Optional[
134
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
135
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
135
136
  ] = None,
136
137
  on_mouse_out: Optional[
137
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
138
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
138
139
  ] = None,
139
140
  on_mouse_over: Optional[
140
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
141
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
141
142
  ] = None,
142
143
  on_mouse_up: Optional[
143
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
144
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
144
145
  ] = None,
145
146
  on_scroll: Optional[
146
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
147
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
147
148
  ] = None,
148
149
  on_unmount: Optional[
149
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
150
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
150
151
  ] = None,
151
152
  **props,
152
153
  ) -> "CommonMarginProps":
@@ -186,51 +187,51 @@ class RadixLoadingProp(Component):
186
187
  id: Optional[Any] = None,
187
188
  class_name: Optional[Any] = None,
188
189
  autofocus: Optional[bool] = None,
189
- custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
190
+ custom_attrs: Optional[Dict[str, Union[ImmutableVar, str]]] = None,
190
191
  on_blur: Optional[
191
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
192
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
192
193
  ] = None,
193
194
  on_click: Optional[
194
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
195
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
195
196
  ] = None,
196
197
  on_context_menu: Optional[
197
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
198
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
198
199
  ] = None,
199
200
  on_double_click: Optional[
200
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
201
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
201
202
  ] = None,
202
203
  on_focus: Optional[
203
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
204
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
204
205
  ] = None,
205
206
  on_mount: Optional[
206
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
207
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
207
208
  ] = None,
208
209
  on_mouse_down: Optional[
209
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
210
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
210
211
  ] = None,
211
212
  on_mouse_enter: Optional[
212
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
213
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
213
214
  ] = None,
214
215
  on_mouse_leave: Optional[
215
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
216
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
216
217
  ] = None,
217
218
  on_mouse_move: Optional[
218
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
219
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
219
220
  ] = None,
220
221
  on_mouse_out: Optional[
221
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
222
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
222
223
  ] = None,
223
224
  on_mouse_over: Optional[
224
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
225
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
225
226
  ] = None,
226
227
  on_mouse_up: Optional[
227
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
228
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
228
229
  ] = None,
229
230
  on_scroll: Optional[
230
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
231
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
231
232
  ] = None,
232
233
  on_unmount: Optional[
233
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
234
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
234
235
  ] = None,
235
236
  **props,
236
237
  ) -> "RadixLoadingProp":
@@ -263,51 +264,51 @@ class RadixThemesComponent(Component):
263
264
  id: Optional[Any] = None,
264
265
  class_name: Optional[Any] = None,
265
266
  autofocus: Optional[bool] = None,
266
- custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
267
+ custom_attrs: Optional[Dict[str, Union[ImmutableVar, str]]] = None,
267
268
  on_blur: Optional[
268
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
269
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
269
270
  ] = None,
270
271
  on_click: Optional[
271
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
272
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
272
273
  ] = None,
273
274
  on_context_menu: Optional[
274
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
275
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
275
276
  ] = None,
276
277
  on_double_click: Optional[
277
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
278
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
278
279
  ] = None,
279
280
  on_focus: Optional[
280
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
281
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
281
282
  ] = None,
282
283
  on_mount: Optional[
283
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
284
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
284
285
  ] = None,
285
286
  on_mouse_down: Optional[
286
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
287
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
287
288
  ] = None,
288
289
  on_mouse_enter: Optional[
289
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
290
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
290
291
  ] = None,
291
292
  on_mouse_leave: Optional[
292
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
293
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
293
294
  ] = None,
294
295
  on_mouse_move: Optional[
295
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
296
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
296
297
  ] = None,
297
298
  on_mouse_out: Optional[
298
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
299
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
299
300
  ] = None,
300
301
  on_mouse_over: Optional[
301
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
302
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
302
303
  ] = None,
303
304
  on_mouse_up: Optional[
304
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
305
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
305
306
  ] = None,
306
307
  on_scroll: Optional[
307
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
308
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
308
309
  ] = None,
309
310
  on_unmount: Optional[
310
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
311
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
311
312
  ] = None,
312
313
  **props,
313
314
  ) -> "RadixThemesComponent":
@@ -342,51 +343,51 @@ class RadixThemesTriggerComponent(RadixThemesComponent):
342
343
  id: Optional[Any] = None,
343
344
  class_name: Optional[Any] = None,
344
345
  autofocus: Optional[bool] = None,
345
- custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
346
+ custom_attrs: Optional[Dict[str, Union[ImmutableVar, str]]] = None,
346
347
  on_blur: Optional[
347
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
348
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
348
349
  ] = None,
349
350
  on_click: Optional[
350
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
351
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
351
352
  ] = None,
352
353
  on_context_menu: Optional[
353
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
354
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
354
355
  ] = None,
355
356
  on_double_click: Optional[
356
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
357
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
357
358
  ] = None,
358
359
  on_focus: Optional[
359
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
360
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
360
361
  ] = None,
361
362
  on_mount: Optional[
362
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
363
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
363
364
  ] = None,
364
365
  on_mouse_down: Optional[
365
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
366
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
366
367
  ] = None,
367
368
  on_mouse_enter: Optional[
368
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
369
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
369
370
  ] = None,
370
371
  on_mouse_leave: Optional[
371
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
372
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
372
373
  ] = None,
373
374
  on_mouse_move: Optional[
374
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
375
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
375
376
  ] = None,
376
377
  on_mouse_out: Optional[
377
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
378
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
378
379
  ] = None,
379
380
  on_mouse_over: Optional[
380
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
381
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
381
382
  ] = None,
382
383
  on_mouse_up: Optional[
383
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
384
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
384
385
  ] = None,
385
386
  on_scroll: Optional[
386
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
387
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
387
388
  ] = None,
388
389
  on_unmount: Optional[
389
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
390
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
390
391
  ] = None,
391
392
  **props,
392
393
  ) -> "RadixThemesTriggerComponent":
@@ -504,51 +505,51 @@ class Theme(RadixThemesComponent):
504
505
  id: Optional[Any] = None,
505
506
  class_name: Optional[Any] = None,
506
507
  autofocus: Optional[bool] = None,
507
- custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
508
+ custom_attrs: Optional[Dict[str, Union[ImmutableVar, str]]] = None,
508
509
  on_blur: Optional[
509
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
510
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
510
511
  ] = None,
511
512
  on_click: Optional[
512
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
513
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
513
514
  ] = None,
514
515
  on_context_menu: Optional[
515
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
516
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
516
517
  ] = None,
517
518
  on_double_click: Optional[
518
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
519
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
519
520
  ] = None,
520
521
  on_focus: Optional[
521
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
522
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
522
523
  ] = None,
523
524
  on_mount: Optional[
524
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
525
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
525
526
  ] = None,
526
527
  on_mouse_down: Optional[
527
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
528
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
528
529
  ] = None,
529
530
  on_mouse_enter: Optional[
530
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
531
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
531
532
  ] = None,
532
533
  on_mouse_leave: Optional[
533
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
534
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
534
535
  ] = None,
535
536
  on_mouse_move: Optional[
536
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
537
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
537
538
  ] = None,
538
539
  on_mouse_out: Optional[
539
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
540
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
540
541
  ] = None,
541
542
  on_mouse_over: Optional[
542
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
543
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
543
544
  ] = None,
544
545
  on_mouse_up: Optional[
545
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
546
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
546
547
  ] = None,
547
548
  on_scroll: Optional[
548
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
549
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
549
550
  ] = None,
550
551
  on_unmount: Optional[
551
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
552
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
552
553
  ] = None,
553
554
  **props,
554
555
  ) -> "Theme":
@@ -594,51 +595,51 @@ class ThemePanel(RadixThemesComponent):
594
595
  id: Optional[Any] = None,
595
596
  class_name: Optional[Any] = None,
596
597
  autofocus: Optional[bool] = None,
597
- custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
598
+ custom_attrs: Optional[Dict[str, Union[ImmutableVar, str]]] = None,
598
599
  on_blur: Optional[
599
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
600
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
600
601
  ] = None,
601
602
  on_click: Optional[
602
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
603
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
603
604
  ] = None,
604
605
  on_context_menu: Optional[
605
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
606
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
606
607
  ] = None,
607
608
  on_double_click: Optional[
608
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
609
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
609
610
  ] = None,
610
611
  on_focus: Optional[
611
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
612
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
612
613
  ] = None,
613
614
  on_mount: Optional[
614
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
615
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
615
616
  ] = None,
616
617
  on_mouse_down: Optional[
617
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
618
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
618
619
  ] = None,
619
620
  on_mouse_enter: Optional[
620
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
621
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
621
622
  ] = None,
622
623
  on_mouse_leave: Optional[
623
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
624
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
624
625
  ] = None,
625
626
  on_mouse_move: Optional[
626
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
627
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
627
628
  ] = None,
628
629
  on_mouse_out: Optional[
629
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
630
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
630
631
  ] = None,
631
632
  on_mouse_over: Optional[
632
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
633
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
633
634
  ] = None,
634
635
  on_mouse_up: Optional[
635
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
636
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
636
637
  ] = None,
637
638
  on_scroll: Optional[
638
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
639
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
639
640
  ] = None,
640
641
  on_unmount: Optional[
641
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
642
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
642
643
  ] = None,
643
644
  **props,
644
645
  ) -> "ThemePanel":
@@ -674,51 +675,51 @@ class RadixThemesColorModeProvider(Component):
674
675
  id: Optional[Any] = None,
675
676
  class_name: Optional[Any] = None,
676
677
  autofocus: Optional[bool] = None,
677
- custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
678
+ custom_attrs: Optional[Dict[str, Union[ImmutableVar, str]]] = None,
678
679
  on_blur: Optional[
679
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
680
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
680
681
  ] = None,
681
682
  on_click: Optional[
682
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
683
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
683
684
  ] = None,
684
685
  on_context_menu: Optional[
685
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
686
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
686
687
  ] = None,
687
688
  on_double_click: Optional[
688
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
689
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
689
690
  ] = None,
690
691
  on_focus: Optional[
691
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
692
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
692
693
  ] = None,
693
694
  on_mount: Optional[
694
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
695
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
695
696
  ] = None,
696
697
  on_mouse_down: Optional[
697
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
698
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
698
699
  ] = None,
699
700
  on_mouse_enter: Optional[
700
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
701
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
701
702
  ] = None,
702
703
  on_mouse_leave: Optional[
703
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
704
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
704
705
  ] = None,
705
706
  on_mouse_move: Optional[
706
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
707
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
707
708
  ] = None,
708
709
  on_mouse_out: Optional[
709
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
710
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
710
711
  ] = None,
711
712
  on_mouse_over: Optional[
712
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
713
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
713
714
  ] = None,
714
715
  on_mouse_up: Optional[
715
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
716
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
716
717
  ] = None,
717
718
  on_scroll: Optional[
718
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
719
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
719
720
  ] = None,
720
721
  on_unmount: Optional[
721
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
722
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
722
723
  ] = None,
723
724
  **props,
724
725
  ) -> "RadixThemesColorModeProvider":
@@ -17,14 +17,15 @@ rx.text(
17
17
 
18
18
  from __future__ import annotations
19
19
 
20
- import dataclasses
21
- from typing import Literal, get_args
20
+ from typing import Dict, List, Literal, get_args
22
21
 
23
22
  from reflex.components.component import BaseComponent
24
23
  from reflex.components.core.cond import Cond, color_mode_cond, cond
25
24
  from reflex.components.lucide.icon import Icon
26
25
  from reflex.components.radix.themes.components.dropdown_menu import dropdown_menu
27
26
  from reflex.components.radix.themes.components.switch import Switch
27
+ from reflex.ivars.base import ImmutableVar
28
+ from reflex.ivars.sequence import LiteralArrayVar
28
29
  from reflex.style import (
29
30
  LIGHT_COLOR_MODE,
30
31
  color_mode,
@@ -32,8 +33,6 @@ from reflex.style import (
32
33
  set_color_mode,
33
34
  toggle_color_mode,
34
35
  )
35
- from reflex.utils import console
36
- from reflex.vars import BaseVar, Var
37
36
 
38
37
  from .components.icon_button import IconButton
39
38
 
@@ -67,9 +66,9 @@ class ColorModeIcon(Cond):
67
66
 
68
67
  LiteralPosition = Literal["top-left", "top-right", "bottom-left", "bottom-right"]
69
68
 
70
- position_values = get_args(LiteralPosition)
69
+ position_values: List[str] = list(get_args(LiteralPosition))
71
70
 
72
- position_map = {
71
+ position_map: Dict[str, List[str]] = {
73
72
  "position": position_values,
74
73
  "left": ["top-left", "bottom-left"],
75
74
  "right": ["top-right", "bottom-right"],
@@ -79,8 +78,8 @@ position_map = {
79
78
 
80
79
 
81
80
  # needed to inverse contains for find
82
- def _find(const, var):
83
- return Var.create_safe(const, _var_is_string=False).contains(var)
81
+ def _find(const: List[str], var):
82
+ return LiteralArrayVar.create(const).contains(var)
84
83
 
85
84
 
86
85
  def _set_var_default(props, position, prop, default1, default2=""):
@@ -100,7 +99,6 @@ class ColorModeIconButton(IconButton):
100
99
  @classmethod
101
100
  def create(
102
101
  cls,
103
- *children,
104
102
  position: LiteralPosition | None = None,
105
103
  allow_system: bool = False,
106
104
  **props,
@@ -108,7 +106,6 @@ class ColorModeIconButton(IconButton):
108
106
  """Create a icon button component that calls toggle_color_mode on click.
109
107
 
110
108
  Args:
111
- *children: The children of the component.
112
109
  position: The position of the icon button. Follow document flow if None.
113
110
  allow_system: Allow picking the "system" value for the color mode.
114
111
  **props: The props to pass to the component.
@@ -116,16 +113,8 @@ class ColorModeIconButton(IconButton):
116
113
  Returns:
117
114
  The button component.
118
115
  """
119
- if children:
120
- console.deprecate(
121
- feature_name="passing children to color_mode.button",
122
- reason=", use color_mode_cond and toggle_color_mode instead to build a custom color_mode component",
123
- deprecation_version="0.5.0",
124
- removal_version="0.6.0",
125
- )
126
-
127
116
  # position is used to set nice defaults for positioning the icon button
128
- if isinstance(position, Var):
117
+ if isinstance(position, ImmutableVar):
129
118
  _set_var_default(props, position, "position", "fixed", position)
130
119
  _set_var_default(props, position, "bottom", "2rem")
131
120
  _set_var_default(props, position, "top", "2rem")
@@ -195,7 +184,7 @@ class ColorModeSwitch(Switch):
195
184
  )
196
185
 
197
186
 
198
- class ColorModeNamespace(BaseVar):
187
+ class ColorModeNamespace(ImmutableVar):
199
188
  """Namespace for color mode components."""
200
189
 
201
190
  icon = staticmethod(ColorModeIcon.create)
@@ -204,5 +193,7 @@ class ColorModeNamespace(BaseVar):
204
193
 
205
194
 
206
195
  color_mode = color_mode_var_and_namespace = ColorModeNamespace(
207
- **dataclasses.asdict(color_mode)
196
+ _var_name=color_mode._var_name,
197
+ _var_type=color_mode._var_type,
198
+ _var_data=color_mode.get_default_value(),
208
199
  )