reflex 0.5.10a3__py3-none-any.whl → 0.6.0__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 (303) 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 +4 -4
  4. reflex/.templates/jinja/web/utils/context.js.jinja2 +1 -1
  5. reflex/.templates/jinja/web/utils/theme.js.jinja2 +1 -1
  6. reflex/.templates/web/utils/state.js +3 -1
  7. reflex/__init__.py +10 -3
  8. reflex/__init__.pyi +3 -2
  9. reflex/app.py +47 -11
  10. reflex/app_module_for_backend.py +1 -1
  11. reflex/base.py +3 -2
  12. reflex/compiler/compiler.py +5 -5
  13. reflex/compiler/utils.py +5 -3
  14. reflex/components/base/app_wrap.py +2 -4
  15. reflex/components/base/app_wrap.pyi +16 -26
  16. reflex/components/base/bare.py +6 -4
  17. reflex/components/base/body.pyi +16 -26
  18. reflex/components/base/document.pyi +76 -126
  19. reflex/components/base/error_boundary.py +9 -8
  20. reflex/components/base/error_boundary.pyi +18 -30
  21. reflex/components/base/fragment.pyi +16 -26
  22. reflex/components/base/head.pyi +31 -51
  23. reflex/components/base/link.py +1 -1
  24. reflex/components/base/link.pyi +31 -51
  25. reflex/components/base/meta.pyi +61 -101
  26. reflex/components/base/script.py +2 -2
  27. reflex/components/base/script.pyi +20 -36
  28. reflex/components/component.py +107 -130
  29. reflex/components/core/banner.py +61 -66
  30. reflex/components/core/banner.pyi +129 -230
  31. reflex/components/core/client_side_routing.py +2 -2
  32. reflex/components/core/client_side_routing.pyi +31 -51
  33. reflex/components/core/clipboard.py +4 -3
  34. reflex/components/core/clipboard.pyi +19 -31
  35. reflex/components/core/cond.py +21 -44
  36. reflex/components/core/debounce.py +7 -9
  37. reflex/components/core/debounce.pyi +19 -31
  38. reflex/components/core/foreach.py +4 -14
  39. reflex/components/core/html.py +1 -1
  40. reflex/components/core/html.pyi +34 -44
  41. reflex/components/core/match.py +36 -43
  42. reflex/components/core/upload.py +27 -26
  43. reflex/components/core/upload.pyi +81 -116
  44. reflex/components/datadisplay/code.py +55 -29
  45. reflex/components/datadisplay/code.pyi +303 -410
  46. reflex/components/datadisplay/dataeditor.py +13 -9
  47. reflex/components/datadisplay/dataeditor.pyi +39 -51
  48. reflex/components/el/__init__.py +0 -1
  49. reflex/components/el/__init__.pyi +0 -11
  50. reflex/components/el/element.pyi +16 -26
  51. reflex/components/el/elements/__init__.py +1 -7
  52. reflex/components/el/elements/__init__.pyi +1 -15
  53. reflex/components/el/elements/base.py +1 -1
  54. reflex/components/el/elements/base.pyi +33 -43
  55. reflex/components/el/elements/forms.py +26 -33
  56. reflex/components/el/elements/forms.pyi +542 -694
  57. reflex/components/el/elements/inline.py +1 -1
  58. reflex/components/el/elements/inline.pyi +909 -1189
  59. reflex/components/el/elements/media.py +1 -22
  60. reflex/components/el/elements/media.pyi +765 -975
  61. reflex/components/el/elements/metadata.py +3 -5
  62. reflex/components/el/elements/metadata.pyi +175 -235
  63. reflex/components/el/elements/other.py +1 -1
  64. reflex/components/el/elements/other.pyi +228 -298
  65. reflex/components/el/elements/scripts.py +1 -1
  66. reflex/components/el/elements/scripts.pyi +106 -136
  67. reflex/components/el/elements/sectioning.py +0 -2
  68. reflex/components/el/elements/sectioning.pyi +481 -631
  69. reflex/components/el/elements/tables.py +1 -1
  70. reflex/components/el/elements/tables.pyi +341 -441
  71. reflex/components/el/elements/typography.py +1 -1
  72. reflex/components/el/elements/typography.pyi +491 -641
  73. reflex/components/gridjs/datatable.py +9 -13
  74. reflex/components/gridjs/datatable.pyi +33 -53
  75. reflex/components/lucide/icon.py +3 -127
  76. reflex/components/lucide/icon.pyi +31 -160
  77. reflex/components/markdown/markdown.py +32 -42
  78. reflex/components/markdown/markdown.pyi +28 -41
  79. reflex/components/moment/moment.py +13 -12
  80. reflex/components/moment/moment.pyi +22 -33
  81. reflex/components/next/base.pyi +16 -26
  82. reflex/components/next/image.py +1 -5
  83. reflex/components/next/image.pyi +21 -35
  84. reflex/components/next/link.py +1 -1
  85. reflex/components/next/link.pyi +16 -26
  86. reflex/components/next/video.py +1 -1
  87. reflex/components/next/video.pyi +16 -26
  88. reflex/components/plotly/plotly.py +17 -30
  89. reflex/components/plotly/plotly.pyi +38 -52
  90. reflex/components/props.py +21 -10
  91. reflex/components/radix/__init__.pyi +2 -1
  92. reflex/components/radix/primitives/accordion.py +6 -7
  93. reflex/components/radix/primitives/accordion.pyi +415 -485
  94. reflex/components/radix/primitives/base.py +1 -1
  95. reflex/components/radix/primitives/base.pyi +31 -51
  96. reflex/components/radix/primitives/drawer.py +1 -1
  97. reflex/components/radix/primitives/drawer.pyi +162 -262
  98. reflex/components/radix/primitives/form.py +1 -1
  99. reflex/components/radix/primitives/form.pyi +247 -353
  100. reflex/components/radix/primitives/progress.py +1 -1
  101. reflex/components/radix/primitives/progress.pyi +226 -276
  102. reflex/components/radix/primitives/slider.py +1 -1
  103. reflex/components/radix/primitives/slider.pyi +82 -132
  104. reflex/components/radix/themes/base.py +8 -25
  105. reflex/components/radix/themes/base.pyi +171 -242
  106. reflex/components/radix/themes/color_mode.py +11 -20
  107. reflex/components/radix/themes/color_mode.pyi +198 -231
  108. reflex/components/radix/themes/components/__init__.pyi +1 -0
  109. reflex/components/radix/themes/components/alert_dialog.py +1 -1
  110. reflex/components/radix/themes/components/alert_dialog.pyi +129 -199
  111. reflex/components/radix/themes/components/aspect_ratio.py +1 -1
  112. reflex/components/radix/themes/components/aspect_ratio.pyi +16 -26
  113. reflex/components/radix/themes/components/avatar.py +1 -1
  114. reflex/components/radix/themes/components/avatar.pyi +69 -79
  115. reflex/components/radix/themes/components/badge.py +1 -1
  116. reflex/components/radix/themes/components/badge.pyi +87 -97
  117. reflex/components/radix/themes/components/button.py +1 -1
  118. reflex/components/radix/themes/components/button.pyi +97 -107
  119. reflex/components/radix/themes/components/callout.py +1 -1
  120. reflex/components/radix/themes/components/callout.pyi +317 -367
  121. reflex/components/radix/themes/components/card.py +1 -1
  122. reflex/components/radix/themes/components/card.pyi +37 -47
  123. reflex/components/radix/themes/components/checkbox.py +2 -4
  124. reflex/components/radix/themes/components/checkbox.pyi +205 -241
  125. reflex/components/radix/themes/components/checkbox_cards.py +1 -1
  126. reflex/components/radix/themes/components/checkbox_cards.pyi +92 -112
  127. reflex/components/radix/themes/components/checkbox_group.py +1 -1
  128. reflex/components/radix/themes/components/checkbox_group.pyi +84 -104
  129. reflex/components/radix/themes/components/context_menu.py +1 -1
  130. reflex/components/radix/themes/components/context_menu.pyi +230 -310
  131. reflex/components/radix/themes/components/data_list.py +6 -1
  132. reflex/components/radix/themes/components/data_list.pyi +131 -166
  133. reflex/components/radix/themes/components/dialog.py +1 -1
  134. reflex/components/radix/themes/components/dialog.pyi +132 -202
  135. reflex/components/radix/themes/components/dropdown_menu.py +1 -1
  136. reflex/components/radix/themes/components/dropdown_menu.pyi +241 -323
  137. reflex/components/radix/themes/components/hover_card.py +1 -1
  138. reflex/components/radix/themes/components/hover_card.pyi +86 -126
  139. reflex/components/radix/themes/components/icon_button.py +1 -1
  140. reflex/components/radix/themes/components/icon_button.pyi +97 -107
  141. reflex/components/radix/themes/components/inset.py +1 -1
  142. reflex/components/radix/themes/components/inset.pyi +46 -56
  143. reflex/components/radix/themes/components/popover.py +1 -1
  144. reflex/components/radix/themes/components/popover.pyi +91 -131
  145. reflex/components/radix/themes/components/progress.py +1 -1
  146. reflex/components/radix/themes/components/progress.pyi +70 -80
  147. reflex/components/radix/themes/components/radio.py +1 -1
  148. reflex/components/radix/themes/components/radio.pyi +68 -78
  149. reflex/components/radix/themes/components/radio_cards.py +1 -1
  150. reflex/components/radix/themes/components/radio_cards.pyi +96 -116
  151. reflex/components/radix/themes/components/radio_group.py +32 -31
  152. reflex/components/radix/themes/components/radio_group.pyi +230 -266
  153. reflex/components/radix/themes/components/scroll_area.py +1 -1
  154. reflex/components/radix/themes/components/scroll_area.pyi +20 -30
  155. reflex/components/radix/themes/components/segmented_control.py +1 -1
  156. reflex/components/radix/themes/components/segmented_control.pyi +88 -110
  157. reflex/components/radix/themes/components/select.py +1 -1
  158. reflex/components/radix/themes/components/select.pyi +365 -461
  159. reflex/components/radix/themes/components/separator.py +2 -4
  160. reflex/components/radix/themes/components/separator.pyi +68 -78
  161. reflex/components/radix/themes/components/skeleton.py +1 -1
  162. reflex/components/radix/themes/components/skeleton.pyi +22 -32
  163. reflex/components/radix/themes/components/slider.py +1 -1
  164. reflex/components/radix/themes/components/slider.pyi +74 -86
  165. reflex/components/radix/themes/components/spinner.py +1 -1
  166. reflex/components/radix/themes/components/spinner.pyi +18 -28
  167. reflex/components/radix/themes/components/switch.py +1 -1
  168. reflex/components/radix/themes/components/switch.pyi +70 -82
  169. reflex/components/radix/themes/components/table.py +1 -1
  170. reflex/components/radix/themes/components/table.pyi +254 -324
  171. reflex/components/radix/themes/components/tabs.py +1 -1
  172. reflex/components/radix/themes/components/tabs.pyi +134 -188
  173. reflex/components/radix/themes/components/text_area.py +1 -1
  174. reflex/components/radix/themes/components/text_area.pyi +95 -109
  175. reflex/components/radix/themes/components/text_field.py +1 -80
  176. reflex/components/radix/themes/components/text_field.pyi +245 -290
  177. reflex/components/radix/themes/components/tooltip.py +1 -1
  178. reflex/components/radix/themes/components/tooltip.pyi +25 -35
  179. reflex/components/radix/themes/layout/__init__.pyi +1 -0
  180. reflex/components/radix/themes/layout/base.py +1 -1
  181. reflex/components/radix/themes/layout/base.pyi +55 -65
  182. reflex/components/radix/themes/layout/box.pyi +33 -43
  183. reflex/components/radix/themes/layout/center.pyi +55 -65
  184. reflex/components/radix/themes/layout/container.py +2 -4
  185. reflex/components/radix/themes/layout/container.pyi +35 -45
  186. reflex/components/radix/themes/layout/flex.py +1 -1
  187. reflex/components/radix/themes/layout/flex.pyi +55 -65
  188. reflex/components/radix/themes/layout/grid.py +1 -1
  189. reflex/components/radix/themes/layout/grid.pyi +63 -73
  190. reflex/components/radix/themes/layout/list.py +1 -1
  191. reflex/components/radix/themes/layout/list.pyi +188 -238
  192. reflex/components/radix/themes/layout/section.py +2 -4
  193. reflex/components/radix/themes/layout/section.pyi +35 -45
  194. reflex/components/radix/themes/layout/spacer.pyi +55 -65
  195. reflex/components/radix/themes/layout/stack.py +1 -1
  196. reflex/components/radix/themes/layout/stack.pyi +125 -155
  197. reflex/components/radix/themes/typography/blockquote.py +1 -1
  198. reflex/components/radix/themes/typography/blockquote.pyi +88 -98
  199. reflex/components/radix/themes/typography/code.py +1 -1
  200. reflex/components/radix/themes/typography/code.pyi +89 -99
  201. reflex/components/radix/themes/typography/heading.py +1 -1
  202. reflex/components/radix/themes/typography/heading.pyi +95 -105
  203. reflex/components/radix/themes/typography/link.py +1 -1
  204. reflex/components/radix/themes/typography/link.pyi +101 -111
  205. reflex/components/radix/themes/typography/text.py +1 -1
  206. reflex/components/radix/themes/typography/text.pyi +494 -564
  207. reflex/components/react_player/audio.pyi +32 -58
  208. reflex/components/react_player/react_player.py +1 -1
  209. reflex/components/react_player/react_player.pyi +32 -58
  210. reflex/components/react_player/video.pyi +32 -58
  211. reflex/components/recharts/cartesian.py +22 -19
  212. reflex/components/recharts/cartesian.pyi +658 -840
  213. reflex/components/recharts/charts.py +3 -3
  214. reflex/components/recharts/charts.pyi +238 -342
  215. reflex/components/recharts/general.py +8 -8
  216. reflex/components/recharts/general.pyi +175 -225
  217. reflex/components/recharts/polar.py +11 -11
  218. reflex/components/recharts/polar.pyi +135 -171
  219. reflex/components/recharts/recharts.pyi +31 -51
  220. reflex/components/sonner/toast.py +27 -31
  221. reflex/components/sonner/toast.pyi +36 -45
  222. reflex/components/suneditor/editor.py +1 -1
  223. reflex/components/suneditor/editor.pyi +54 -76
  224. reflex/components/tags/cond_tag.py +6 -4
  225. reflex/components/tags/iter_tag.py +37 -25
  226. reflex/components/tags/match_tag.py +6 -4
  227. reflex/components/tags/tag.py +43 -28
  228. reflex/constants/base.py +3 -1
  229. reflex/constants/event.py +1 -0
  230. reflex/custom_components/custom_components.py +3 -1
  231. reflex/event.py +166 -108
  232. reflex/experimental/__init__.py +25 -6
  233. reflex/experimental/client_state.py +34 -57
  234. reflex/experimental/hooks.py +12 -17
  235. reflex/experimental/layout.py +4 -4
  236. reflex/experimental/layout.pyi +130 -180
  237. reflex/middleware/hydrate_middleware.py +2 -0
  238. reflex/middleware/middleware.py +3 -3
  239. reflex/model.py +22 -0
  240. reflex/reflex.py +4 -0
  241. reflex/state.py +491 -110
  242. reflex/style.py +56 -39
  243. reflex/testing.py +8 -3
  244. reflex/utils/exceptions.py +32 -0
  245. reflex/utils/exec.py +0 -14
  246. reflex/utils/format.py +80 -209
  247. reflex/utils/imports.py +16 -73
  248. reflex/utils/net.py +43 -0
  249. reflex/utils/path_ops.py +13 -1
  250. reflex/utils/prerequisites.py +81 -41
  251. reflex/utils/pyi_generator.py +12 -6
  252. reflex/utils/serializers.py +13 -41
  253. reflex/utils/telemetry.py +3 -2
  254. reflex/utils/types.py +47 -7
  255. reflex/{experimental/vars → vars}/__init__.py +6 -3
  256. reflex/vars/base.py +2563 -0
  257. reflex/vars/function.py +196 -0
  258. reflex/vars/number.py +1158 -0
  259. reflex/vars/object.py +562 -0
  260. reflex/vars/sequence.py +1604 -0
  261. {reflex-0.5.10a3.dist-info → reflex-0.6.0.dist-info}/METADATA +6 -9
  262. reflex-0.6.0.dist-info/RECORD +382 -0
  263. reflex/.templates/apps/demo/.gitignore +0 -4
  264. reflex/.templates/apps/demo/assets/favicon.ico +0 -0
  265. reflex/.templates/apps/demo/assets/github.svg +0 -10
  266. reflex/.templates/apps/demo/assets/icon.svg +0 -37
  267. reflex/.templates/apps/demo/assets/logo.svg +0 -68
  268. reflex/.templates/apps/demo/assets/paneleft.svg +0 -13
  269. reflex/.templates/apps/demo/code/__init__.py +0 -1
  270. reflex/.templates/apps/demo/code/demo.py +0 -127
  271. reflex/.templates/apps/demo/code/pages/__init__.py +0 -7
  272. reflex/.templates/apps/demo/code/pages/chatapp.py +0 -31
  273. reflex/.templates/apps/demo/code/pages/datatable.py +0 -360
  274. reflex/.templates/apps/demo/code/pages/forms.py +0 -257
  275. reflex/.templates/apps/demo/code/pages/graphing.py +0 -253
  276. reflex/.templates/apps/demo/code/pages/home.py +0 -56
  277. reflex/.templates/apps/demo/code/sidebar.py +0 -178
  278. reflex/.templates/apps/demo/code/state.py +0 -22
  279. reflex/.templates/apps/demo/code/states/form_state.py +0 -40
  280. reflex/.templates/apps/demo/code/states/pie_state.py +0 -47
  281. reflex/.templates/apps/demo/code/styles.py +0 -68
  282. reflex/.templates/apps/demo/code/webui/__init__.py +0 -0
  283. reflex/.templates/apps/demo/code/webui/components/__init__.py +0 -4
  284. reflex/.templates/apps/demo/code/webui/components/chat.py +0 -118
  285. reflex/.templates/apps/demo/code/webui/components/loading_icon.py +0 -19
  286. reflex/.templates/apps/demo/code/webui/components/modal.py +0 -56
  287. reflex/.templates/apps/demo/code/webui/components/navbar.py +0 -70
  288. reflex/.templates/apps/demo/code/webui/components/sidebar.py +0 -66
  289. reflex/.templates/apps/demo/code/webui/state.py +0 -146
  290. reflex/.templates/apps/demo/code/webui/styles.py +0 -88
  291. reflex/.templates/web/components/reflex/chakra_color_mode_provider.js +0 -36
  292. reflex/experimental/vars/base.py +0 -583
  293. reflex/experimental/vars/function.py +0 -290
  294. reflex/experimental/vars/number.py +0 -1458
  295. reflex/experimental/vars/object.py +0 -804
  296. reflex/experimental/vars/sequence.py +0 -1764
  297. reflex/utils/watch.py +0 -96
  298. reflex/vars.py +0 -2604
  299. reflex/vars.pyi +0 -218
  300. reflex-0.5.10a3.dist-info/RECORD +0 -413
  301. {reflex-0.5.10a3.dist-info → reflex-0.6.0.dist-info}/LICENSE +0 -0
  302. {reflex-0.5.10a3.dist-info → reflex-0.6.0.dist-info}/WHEEL +0 -0
  303. {reflex-0.5.10a3.dist-info → reflex-0.6.0.dist-info}/entry_points.txt +0 -0
@@ -8,7 +8,7 @@ from typing import Any, Callable, Dict, Optional, Union, overload
8
8
  from reflex.components.component import Component
9
9
  from reflex.event import EventHandler, EventSpec
10
10
  from reflex.style import Style
11
- from reflex.vars import BaseVar, Var
11
+ from reflex.vars.base import Var
12
12
 
13
13
  class NextLink(Component):
14
14
  @overload
@@ -24,50 +24,40 @@ class NextLink(Component):
24
24
  class_name: Optional[Any] = None,
25
25
  autofocus: Optional[bool] = None,
26
26
  custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
27
- on_blur: Optional[
28
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
29
- ] = None,
30
- on_click: Optional[
31
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
32
- ] = None,
27
+ on_blur: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
28
+ on_click: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
33
29
  on_context_menu: Optional[
34
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
30
+ Union[EventHandler, EventSpec, list, Callable, Var]
35
31
  ] = None,
36
32
  on_double_click: Optional[
37
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
38
- ] = None,
39
- on_focus: Optional[
40
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
41
- ] = None,
42
- on_mount: Optional[
43
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
33
+ Union[EventHandler, EventSpec, list, Callable, Var]
44
34
  ] = None,
35
+ on_focus: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
36
+ on_mount: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
45
37
  on_mouse_down: Optional[
46
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
38
+ Union[EventHandler, EventSpec, list, Callable, Var]
47
39
  ] = None,
48
40
  on_mouse_enter: Optional[
49
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
41
+ Union[EventHandler, EventSpec, list, Callable, Var]
50
42
  ] = None,
51
43
  on_mouse_leave: Optional[
52
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
44
+ Union[EventHandler, EventSpec, list, Callable, Var]
53
45
  ] = None,
54
46
  on_mouse_move: Optional[
55
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
47
+ Union[EventHandler, EventSpec, list, Callable, Var]
56
48
  ] = None,
57
49
  on_mouse_out: Optional[
58
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
50
+ Union[EventHandler, EventSpec, list, Callable, Var]
59
51
  ] = None,
60
52
  on_mouse_over: Optional[
61
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
53
+ Union[EventHandler, EventSpec, list, Callable, Var]
62
54
  ] = None,
63
55
  on_mouse_up: Optional[
64
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
65
- ] = None,
66
- on_scroll: Optional[
67
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
56
+ Union[EventHandler, EventSpec, list, Callable, Var]
68
57
  ] = None,
58
+ on_scroll: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
69
59
  on_unmount: Optional[
70
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
60
+ Union[EventHandler, EventSpec, list, Callable, Var]
71
61
  ] = None,
72
62
  **props,
73
63
  ) -> "NextLink":
@@ -3,7 +3,7 @@
3
3
  from typing import Optional
4
4
 
5
5
  from reflex.components.component import Component
6
- from reflex.vars import Var
6
+ from reflex.vars.base import Var
7
7
 
8
8
  from .base import NextComponent
9
9
 
@@ -8,7 +8,7 @@ from typing import Any, Callable, Dict, Optional, Union, overload
8
8
  from reflex.components.component import Component
9
9
  from reflex.event import EventHandler, EventSpec
10
10
  from reflex.style import Style
11
- from reflex.vars import BaseVar, Var
11
+ from reflex.vars.base import Var
12
12
 
13
13
  from .base import NextComponent
14
14
 
@@ -26,50 +26,40 @@ class Video(NextComponent):
26
26
  class_name: Optional[Any] = None,
27
27
  autofocus: Optional[bool] = None,
28
28
  custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
29
- on_blur: Optional[
30
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
31
- ] = None,
32
- on_click: Optional[
33
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
34
- ] = None,
29
+ on_blur: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
30
+ on_click: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
35
31
  on_context_menu: Optional[
36
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
32
+ Union[EventHandler, EventSpec, list, Callable, Var]
37
33
  ] = None,
38
34
  on_double_click: Optional[
39
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
40
- ] = None,
41
- on_focus: Optional[
42
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
43
- ] = None,
44
- on_mount: Optional[
45
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
35
+ Union[EventHandler, EventSpec, list, Callable, Var]
46
36
  ] = None,
37
+ on_focus: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
38
+ on_mount: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
47
39
  on_mouse_down: Optional[
48
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
40
+ Union[EventHandler, EventSpec, list, Callable, Var]
49
41
  ] = None,
50
42
  on_mouse_enter: Optional[
51
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
43
+ Union[EventHandler, EventSpec, list, Callable, Var]
52
44
  ] = None,
53
45
  on_mouse_leave: Optional[
54
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
46
+ Union[EventHandler, EventSpec, list, Callable, Var]
55
47
  ] = None,
56
48
  on_mouse_move: Optional[
57
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
49
+ Union[EventHandler, EventSpec, list, Callable, Var]
58
50
  ] = None,
59
51
  on_mouse_out: Optional[
60
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
52
+ Union[EventHandler, EventSpec, list, Callable, Var]
61
53
  ] = None,
62
54
  on_mouse_over: Optional[
63
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
55
+ Union[EventHandler, EventSpec, list, Callable, Var]
64
56
  ] = None,
65
57
  on_mouse_up: Optional[
66
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
67
- ] = None,
68
- on_scroll: Optional[
69
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
58
+ Union[EventHandler, EventSpec, list, Callable, Var]
70
59
  ] = None,
60
+ on_scroll: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
71
61
  on_unmount: Optional[
72
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
62
+ Union[EventHandler, EventSpec, list, Callable, Var]
73
63
  ] = None,
74
64
  **props,
75
65
  ) -> "Video":
@@ -9,7 +9,7 @@ from reflex.components.component import Component, NoSSRComponent
9
9
  from reflex.components.core.cond import color_mode_cond
10
10
  from reflex.event import EventHandler
11
11
  from reflex.utils import console
12
- from reflex.vars import Var
12
+ from reflex.vars.base import LiteralVar, Var
13
13
 
14
14
  try:
15
15
  from plotly.graph_objects import Figure, layout
@@ -30,7 +30,7 @@ def _event_data_signature(e0: Var) -> List[Any]:
30
30
  Returns:
31
31
  The event key extracted from the event data (if defined).
32
32
  """
33
- return [Var.create_safe(f"{e0}?.event", _var_is_string=False)]
33
+ return [Var(_js_expr=f"{e0}?.event")]
34
34
 
35
35
 
36
36
  def _event_points_data_signature(e0: Var) -> List[Any]:
@@ -43,11 +43,8 @@ def _event_points_data_signature(e0: Var) -> List[Any]:
43
43
  The event data and the extracted points.
44
44
  """
45
45
  return [
46
- Var.create_safe(f"{e0}?.event", _var_is_string=False),
47
- Var.create_safe(
48
- f"extractPoints({e0}?.points)",
49
- _var_is_string=False,
50
- ),
46
+ Var(_js_expr=f"{e0}?.event"),
47
+ Var(_js_expr=f"extractPoints({e0}?.points)"),
51
48
  ]
52
49
 
53
50
 
@@ -104,19 +101,19 @@ class Plotly(NoSSRComponent):
104
101
  is_default = True
105
102
 
106
103
  # The figure to display. This can be a plotly figure or a plotly data json.
107
- data: Var[Figure]
104
+ data: Var[Figure] # type: ignore
108
105
 
109
106
  # The layout of the graph.
110
107
  layout: Var[Dict]
111
108
 
112
109
  # The template for visual appearance of the graph.
113
- template: Var[Template]
110
+ template: Var[Template] # type: ignore
114
111
 
115
112
  # The config of the graph.
116
113
  config: Var[Dict]
117
114
 
118
115
  # If true, the graph will resize when the window is resized.
119
- use_resize_handler: Var[bool] = Var.create_safe(True)
116
+ use_resize_handler: Var[bool] = LiteralVar.create(True)
120
117
 
121
118
  # Fired after the plot is redrawn.
122
119
  on_after_plot: EventHandler[_passthrough_signature]
@@ -242,8 +239,8 @@ const extractPoints = (points) => {
242
239
  from plotly.io import templates
243
240
 
244
241
  responsive_template = color_mode_cond(
245
- light=Var.create_safe(templates["plotly"]).to(dict),
246
- dark=Var.create_safe(templates["plotly_dark"]).to(dict),
242
+ light=LiteralVar.create(templates["plotly"]),
243
+ dark=LiteralVar.create(templates["plotly_dark"]),
247
244
  )
248
245
  if isinstance(responsive_template, Var):
249
246
  # Mark the conditional Var as a Template to avoid type mismatch
@@ -263,30 +260,20 @@ const extractPoints = (points) => {
263
260
  # Why is this not a literal dict? Great question... it didn't work
264
261
  # reliably because of how _var_name_unwrapped strips the outer curly
265
262
  # brackets if any of the contained Vars depend on state.
266
- layout_dict = Var.create_safe(
267
- f"{{'layout': {self.layout.to(dict)._var_name_unwrapped}}}"
268
- ).to(dict)
263
+ layout_dict = LiteralVar.create({"layout": self.layout})
269
264
  merge_dicts.append(layout_dict)
270
265
  if self.template is not None:
271
- template_dict = Var.create_safe(
272
- {"layout": {"template": self.template.to(dict)}}
273
- )
274
- template_dict._var_data = None # To avoid stripping outer curly brackets
275
- merge_dicts.append(template_dict)
266
+ template_dict = LiteralVar.create({"layout": {"template": self.template}})
267
+ merge_dicts.append(template_dict.without_data())
276
268
  if merge_dicts:
277
- tag.special_props.add(
269
+ tag.special_props.append(
278
270
  # Merge all dictionaries and spread the result over props.
279
- Var.create_safe(
280
- f"{{...mergician({figure._var_name_unwrapped},"
281
- f"{','.join(md._var_name_unwrapped for md in merge_dicts)})}}",
282
- _var_is_string=False,
271
+ Var(
272
+ _js_expr=f"{{...mergician({str(figure)},"
273
+ f"{','.join(str(md) for md in merge_dicts)})}}",
283
274
  ),
284
275
  )
285
276
  else:
286
277
  # Spread the figure dict over props, nothing to merge.
287
- tag.special_props.add(
288
- Var.create_safe(
289
- f"{{...{figure._var_name_unwrapped}}}", _var_is_string=False
290
- )
291
- )
278
+ tag.special_props.append(Var(_js_expr=f"{{...{str(figure)}}}"))
292
279
  return tag
@@ -10,7 +10,7 @@ from reflex.components.component import NoSSRComponent
10
10
  from reflex.event import EventHandler, EventSpec
11
11
  from reflex.style import Style
12
12
  from reflex.utils import console
13
- from reflex.vars import BaseVar, Var
13
+ from reflex.vars.base import Var
14
14
 
15
15
  try:
16
16
  from plotly.graph_objects import Figure, layout
@@ -34,10 +34,10 @@ class Plotly(NoSSRComponent):
34
34
  def create( # type: ignore
35
35
  cls,
36
36
  *children,
37
- data: Optional[Union[Var[Figure], Figure]] = None, # type: ignore
38
- layout: Optional[Union[Var[Dict], Dict]] = None,
39
- template: Optional[Union[Var[Template], Template]] = None, # type: ignore
40
- config: Optional[Union[Var[Dict], Dict]] = None,
37
+ data: Optional[Union[Figure, Var[Figure]]] = None, # type: ignore
38
+ layout: Optional[Union[Dict, Var[Dict]]] = None,
39
+ template: Optional[Union[Template, Var[Template]]] = None, # type: ignore
40
+ config: Optional[Union[Dict, Var[Dict]]] = None,
41
41
  use_resize_handler: Optional[Union[Var[bool], bool]] = None,
42
42
  style: Optional[Style] = None,
43
43
  key: Optional[Any] = None,
@@ -46,103 +46,89 @@ class Plotly(NoSSRComponent):
46
46
  autofocus: Optional[bool] = None,
47
47
  custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
48
48
  on_after_plot: Optional[
49
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
49
+ Union[EventHandler, EventSpec, list, Callable, Var]
50
50
  ] = None,
51
51
  on_animated: Optional[
52
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
52
+ Union[EventHandler, EventSpec, list, Callable, Var]
53
53
  ] = None,
54
54
  on_animating_frame: Optional[
55
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
55
+ Union[EventHandler, EventSpec, list, Callable, Var]
56
56
  ] = None,
57
57
  on_animation_interrupted: Optional[
58
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
58
+ Union[EventHandler, EventSpec, list, Callable, Var]
59
59
  ] = None,
60
60
  on_autosize: Optional[
61
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
61
+ Union[EventHandler, EventSpec, list, Callable, Var]
62
62
  ] = None,
63
63
  on_before_hover: Optional[
64
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
65
- ] = None,
66
- on_blur: Optional[
67
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
64
+ Union[EventHandler, EventSpec, list, Callable, Var]
68
65
  ] = None,
66
+ on_blur: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
69
67
  on_button_clicked: Optional[
70
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
71
- ] = None,
72
- on_click: Optional[
73
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
68
+ Union[EventHandler, EventSpec, list, Callable, Var]
74
69
  ] = None,
70
+ on_click: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
75
71
  on_context_menu: Optional[
76
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
72
+ Union[EventHandler, EventSpec, list, Callable, Var]
77
73
  ] = None,
78
74
  on_deselect: Optional[
79
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
75
+ Union[EventHandler, EventSpec, list, Callable, Var]
80
76
  ] = None,
81
77
  on_double_click: Optional[
82
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
83
- ] = None,
84
- on_focus: Optional[
85
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
86
- ] = None,
87
- on_hover: Optional[
88
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
89
- ] = None,
90
- on_mount: Optional[
91
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
78
+ Union[EventHandler, EventSpec, list, Callable, Var]
92
79
  ] = None,
80
+ on_focus: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
81
+ on_hover: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
82
+ on_mount: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
93
83
  on_mouse_down: Optional[
94
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
84
+ Union[EventHandler, EventSpec, list, Callable, Var]
95
85
  ] = None,
96
86
  on_mouse_enter: Optional[
97
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
87
+ Union[EventHandler, EventSpec, list, Callable, Var]
98
88
  ] = None,
99
89
  on_mouse_leave: Optional[
100
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
90
+ Union[EventHandler, EventSpec, list, Callable, Var]
101
91
  ] = None,
102
92
  on_mouse_move: Optional[
103
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
93
+ Union[EventHandler, EventSpec, list, Callable, Var]
104
94
  ] = None,
105
95
  on_mouse_out: Optional[
106
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
96
+ Union[EventHandler, EventSpec, list, Callable, Var]
107
97
  ] = None,
108
98
  on_mouse_over: Optional[
109
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
99
+ Union[EventHandler, EventSpec, list, Callable, Var]
110
100
  ] = None,
111
101
  on_mouse_up: Optional[
112
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
113
- ] = None,
114
- on_redraw: Optional[
115
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
102
+ Union[EventHandler, EventSpec, list, Callable, Var]
116
103
  ] = None,
104
+ on_redraw: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
117
105
  on_relayout: Optional[
118
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
106
+ Union[EventHandler, EventSpec, list, Callable, Var]
119
107
  ] = None,
120
108
  on_relayouting: Optional[
121
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
109
+ Union[EventHandler, EventSpec, list, Callable, Var]
122
110
  ] = None,
123
111
  on_restyle: Optional[
124
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
125
- ] = None,
126
- on_scroll: Optional[
127
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
112
+ Union[EventHandler, EventSpec, list, Callable, Var]
128
113
  ] = None,
114
+ on_scroll: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
129
115
  on_selected: Optional[
130
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
116
+ Union[EventHandler, EventSpec, list, Callable, Var]
131
117
  ] = None,
132
118
  on_selecting: Optional[
133
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
119
+ Union[EventHandler, EventSpec, list, Callable, Var]
134
120
  ] = None,
135
121
  on_transition_interrupted: Optional[
136
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
122
+ Union[EventHandler, EventSpec, list, Callable, Var]
137
123
  ] = None,
138
124
  on_transitioning: Optional[
139
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
125
+ Union[EventHandler, EventSpec, list, Callable, Var]
140
126
  ] = None,
141
127
  on_unhover: Optional[
142
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
128
+ Union[EventHandler, EventSpec, list, Callable, Var]
143
129
  ] = None,
144
130
  on_unmount: Optional[
145
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
131
+ Union[EventHandler, EventSpec, list, Callable, Var]
146
132
  ] = None,
147
133
  **props,
148
134
  ) -> "Plotly":
@@ -4,7 +4,7 @@ from __future__ import annotations
4
4
 
5
5
  from reflex.base import Base
6
6
  from reflex.utils import format
7
- from reflex.utils.serializers import serialize
7
+ from reflex.vars.object import LiteralObjectVar
8
8
 
9
9
 
10
10
  class PropsBase(Base):
@@ -20,12 +20,23 @@ class PropsBase(Base):
20
20
  Returns:
21
21
  The object as a Javascript Object literal.
22
22
  """
23
- return format.unwrap_vars(
24
- self.__config__.json_dumps(
25
- {
26
- format.to_camel_case(key): value
27
- for key, value in self.dict().items()
28
- },
29
- default=serialize,
30
- )
31
- )
23
+ return LiteralObjectVar.create(
24
+ {format.to_camel_case(key): value for key, value in self.dict().items()}
25
+ ).json()
26
+
27
+ def dict(self, *args, **kwargs):
28
+ """Convert the object to a dictionary.
29
+
30
+ Keys will be converted to camelCase.
31
+
32
+ Args:
33
+ *args: Arguments to pass to the parent class.
34
+ **kwargs: Keyword arguments to pass to the parent class.
35
+
36
+ Returns:
37
+ The object as a dictionary.
38
+ """
39
+ return {
40
+ format.to_camel_case(key): value
41
+ for key, value in super().dict(*args, **kwargs).items()
42
+ }
@@ -8,7 +8,6 @@ from . import themes as themes
8
8
  from .primitives.accordion import accordion as accordion
9
9
  from .primitives.drawer import drawer as drawer
10
10
  from .primitives.form import form as form
11
- from .primitives.progress import progress as progress
12
11
  from .themes.base import theme as theme
13
12
  from .themes.base import theme_panel as theme_panel
14
13
  from .themes.color_mode import color_mode as color_mode
@@ -31,6 +30,7 @@ from .themes.components.hover_card import hover_card as hover_card
31
30
  from .themes.components.icon_button import icon_button as icon_button
32
31
  from .themes.components.inset import inset as inset
33
32
  from .themes.components.popover import popover as popover
33
+ from .themes.components.progress import progress as progress
34
34
  from .themes.components.radio_cards import radio_cards as radio_cards
35
35
  from .themes.components.radio_group import radio as radio
36
36
  from .themes.components.radio_group import radio_group as radio_group
@@ -55,6 +55,7 @@ from .themes.layout.container import container as container
55
55
  from .themes.layout.flex import flex as flex
56
56
  from .themes.layout.grid import grid as grid
57
57
  from .themes.layout.list import list_item as list_item
58
+ from .themes.layout.list import list_ns as list # noqa
58
59
  from .themes.layout.list import ordered_list as ordered_list
59
60
  from .themes.layout.list import unordered_list as unordered_list
60
61
  from .themes.layout.section import section as section
@@ -12,7 +12,8 @@ from reflex.components.radix.primitives.base import RadixPrimitiveComponent
12
12
  from reflex.components.radix.themes.base import LiteralAccentColor, LiteralRadius
13
13
  from reflex.event import EventHandler
14
14
  from reflex.style import Style
15
- from reflex.vars import Var, get_uuid_string_var
15
+ from reflex.vars import get_uuid_string_var
16
+ from reflex.vars.base import LiteralVar, Var
16
17
 
17
18
  LiteralAccordionType = Literal["single", "multiple"]
18
19
  LiteralAccordionDir = Literal["ltr", "rtl"]
@@ -102,10 +103,10 @@ class AccordionRoot(AccordionComponent):
102
103
  radius: Var[LiteralRadius]
103
104
 
104
105
  # The time in milliseconds to animate open and close
105
- duration: Var[int] = Var.create_safe(DEFAULT_ANIMATION_DURATION)
106
+ duration: Var[int] = LiteralVar.create(DEFAULT_ANIMATION_DURATION)
106
107
 
107
108
  # The easing function to use for the animation.
108
- easing: Var[str] = Var.create_safe(DEFAULT_ANIMATION_EASING, _var_is_string=True)
109
+ easing: Var[str] = LiteralVar.create(DEFAULT_ANIMATION_EASING)
109
110
 
110
111
  # Whether to show divider lines between items.
111
112
  show_dividers: Var[bool]
@@ -464,14 +465,12 @@ to {
464
465
  Returns:
465
466
  The style of the component.
466
467
  """
467
- slideDown = Var.create(
468
+ slideDown = LiteralVar.create(
468
469
  f"${{slideDown}} var(--animation-duration) var(--animation-easing)",
469
- _var_is_string=True,
470
470
  )
471
471
 
472
- slideUp = Var.create(
472
+ slideUp = LiteralVar.create(
473
473
  f"${{slideUp}} var(--animation-duration) var(--animation-easing)",
474
- _var_is_string=True,
475
474
  )
476
475
 
477
476
  return {