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
@@ -9,7 +9,7 @@ from typing import Any, Callable, Dict, Literal, Optional, Union, overload
9
9
  from reflex.components.core.breakpoints import Breakpoints
10
10
  from reflex.event import EventHandler, EventSpec
11
11
  from reflex.style import Style
12
- from reflex.vars import BaseVar, Var
12
+ from reflex.vars.base import Var
13
13
 
14
14
  from ..base import RadixThemesComponent
15
15
 
@@ -22,83 +22,88 @@ class RadioCardsRoot(RadixThemesComponent):
22
22
  as_child: Optional[Union[Var[bool], bool]] = None,
23
23
  size: Optional[
24
24
  Union[
25
+ Breakpoints[str, Literal["1", "2", "3"]],
26
+ Literal["1", "2", "3"],
25
27
  Var[
26
28
  Union[
27
29
  Breakpoints[str, Literal["1", "2", "3"]], Literal["1", "2", "3"]
28
30
  ]
29
31
  ],
30
- Literal["1", "2", "3"],
31
- Breakpoints[str, Literal["1", "2", "3"]],
32
32
  ]
33
33
  ] = None,
34
34
  variant: Optional[
35
- Union[Var[Literal["classic", "surface"]], Literal["classic", "surface"]]
35
+ Union[Literal["classic", "surface"], Var[Literal["classic", "surface"]]]
36
36
  ] = None,
37
37
  color_scheme: Optional[
38
38
  Union[
39
+ Literal[
40
+ "amber",
41
+ "blue",
42
+ "bronze",
43
+ "brown",
44
+ "crimson",
45
+ "cyan",
46
+ "gold",
47
+ "grass",
48
+ "gray",
49
+ "green",
50
+ "indigo",
51
+ "iris",
52
+ "jade",
53
+ "lime",
54
+ "mint",
55
+ "orange",
56
+ "pink",
57
+ "plum",
58
+ "purple",
59
+ "red",
60
+ "ruby",
61
+ "sky",
62
+ "teal",
63
+ "tomato",
64
+ "violet",
65
+ "yellow",
66
+ ],
39
67
  Var[
40
68
  Literal[
41
- "tomato",
42
- "red",
43
- "ruby",
44
- "crimson",
45
- "pink",
46
- "plum",
47
- "purple",
48
- "violet",
49
- "iris",
50
- "indigo",
69
+ "amber",
51
70
  "blue",
71
+ "bronze",
72
+ "brown",
73
+ "crimson",
52
74
  "cyan",
53
- "teal",
54
- "jade",
55
- "green",
75
+ "gold",
56
76
  "grass",
57
- "brown",
77
+ "gray",
78
+ "green",
79
+ "indigo",
80
+ "iris",
81
+ "jade",
82
+ "lime",
83
+ "mint",
58
84
  "orange",
85
+ "pink",
86
+ "plum",
87
+ "purple",
88
+ "red",
89
+ "ruby",
59
90
  "sky",
60
- "mint",
61
- "lime",
91
+ "teal",
92
+ "tomato",
93
+ "violet",
62
94
  "yellow",
63
- "amber",
64
- "gold",
65
- "bronze",
66
- "gray",
67
95
  ]
68
96
  ],
69
- Literal[
70
- "tomato",
71
- "red",
72
- "ruby",
73
- "crimson",
74
- "pink",
75
- "plum",
76
- "purple",
77
- "violet",
78
- "iris",
79
- "indigo",
80
- "blue",
81
- "cyan",
82
- "teal",
83
- "jade",
84
- "green",
85
- "grass",
86
- "brown",
87
- "orange",
88
- "sky",
89
- "mint",
90
- "lime",
91
- "yellow",
92
- "amber",
93
- "gold",
94
- "bronze",
95
- "gray",
96
- ],
97
97
  ]
98
98
  ] = None,
99
99
  high_contrast: Optional[Union[Var[bool], bool]] = None,
100
100
  columns: Optional[
101
101
  Union[
102
+ Breakpoints[
103
+ str,
104
+ Union[Literal["1", "2", "3", "4", "5", "6", "7", "8", "9"], str],
105
+ ],
106
+ Literal["1", "2", "3", "4", "5", "6", "7", "8", "9"],
102
107
  Var[
103
108
  Union[
104
109
  Breakpoints[
@@ -113,15 +118,15 @@ class RadioCardsRoot(RadixThemesComponent):
113
118
  ]
114
119
  ],
115
120
  str,
116
- Literal["1", "2", "3", "4", "5", "6", "7", "8", "9"],
117
- Breakpoints[
118
- str,
119
- Union[Literal["1", "2", "3", "4", "5", "6", "7", "8", "9"], str],
120
- ],
121
121
  ]
122
122
  ] = None,
123
123
  gap: Optional[
124
124
  Union[
125
+ Breakpoints[
126
+ str,
127
+ Union[Literal["1", "2", "3", "4", "5", "6", "7", "8", "9"], str],
128
+ ],
129
+ Literal["1", "2", "3", "4", "5", "6", "7", "8", "9"],
125
130
  Var[
126
131
  Union[
127
132
  Breakpoints[
@@ -136,11 +141,6 @@ class RadioCardsRoot(RadixThemesComponent):
136
141
  ]
137
142
  ],
138
143
  str,
139
- Literal["1", "2", "3", "4", "5", "6", "7", "8", "9"],
140
- Breakpoints[
141
- str,
142
- Union[Literal["1", "2", "3", "4", "5", "6", "7", "8", "9"], str],
143
- ],
144
144
  ]
145
145
  ] = None,
146
146
  default_value: Optional[Union[Var[str], str]] = None,
@@ -150,11 +150,11 @@ class RadioCardsRoot(RadixThemesComponent):
150
150
  required: Optional[Union[Var[bool], bool]] = None,
151
151
  orientation: Optional[
152
152
  Union[
153
- Var[Literal["horizontal", "vertical", "undefined"]],
154
- Literal["horizontal", "vertical", "undefined"],
153
+ Literal["horizontal", "undefined", "vertical"],
154
+ Var[Literal["horizontal", "undefined", "vertical"]],
155
155
  ]
156
156
  ] = None,
157
- dir: Optional[Union[Var[Literal["ltr", "rtl"]], Literal["ltr", "rtl"]]] = None,
157
+ dir: Optional[Union[Literal["ltr", "rtl"], Var[Literal["ltr", "rtl"]]]] = None,
158
158
  loop: Optional[Union[Var[bool], bool]] = None,
159
159
  style: Optional[Style] = None,
160
160
  key: Optional[Any] = None,
@@ -162,53 +162,43 @@ class RadioCardsRoot(RadixThemesComponent):
162
162
  class_name: Optional[Any] = None,
163
163
  autofocus: Optional[bool] = None,
164
164
  custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
165
- on_blur: Optional[
166
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
167
- ] = None,
168
- on_click: Optional[
169
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
170
- ] = None,
165
+ on_blur: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
166
+ on_click: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
171
167
  on_context_menu: Optional[
172
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
168
+ Union[EventHandler, EventSpec, list, Callable, Var]
173
169
  ] = None,
174
170
  on_double_click: Optional[
175
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
176
- ] = None,
177
- on_focus: Optional[
178
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
179
- ] = None,
180
- on_mount: Optional[
181
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
171
+ Union[EventHandler, EventSpec, list, Callable, Var]
182
172
  ] = None,
173
+ on_focus: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
174
+ on_mount: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
183
175
  on_mouse_down: Optional[
184
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
176
+ Union[EventHandler, EventSpec, list, Callable, Var]
185
177
  ] = None,
186
178
  on_mouse_enter: Optional[
187
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
179
+ Union[EventHandler, EventSpec, list, Callable, Var]
188
180
  ] = None,
189
181
  on_mouse_leave: Optional[
190
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
182
+ Union[EventHandler, EventSpec, list, Callable, Var]
191
183
  ] = None,
192
184
  on_mouse_move: Optional[
193
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
185
+ Union[EventHandler, EventSpec, list, Callable, Var]
194
186
  ] = None,
195
187
  on_mouse_out: Optional[
196
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
188
+ Union[EventHandler, EventSpec, list, Callable, Var]
197
189
  ] = None,
198
190
  on_mouse_over: Optional[
199
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
191
+ Union[EventHandler, EventSpec, list, Callable, Var]
200
192
  ] = None,
201
193
  on_mouse_up: Optional[
202
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
203
- ] = None,
204
- on_scroll: Optional[
205
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
194
+ Union[EventHandler, EventSpec, list, Callable, Var]
206
195
  ] = None,
196
+ on_scroll: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
207
197
  on_unmount: Optional[
208
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
198
+ Union[EventHandler, EventSpec, list, Callable, Var]
209
199
  ] = None,
210
200
  on_value_change: Optional[
211
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
201
+ Union[EventHandler, EventSpec, list, Callable, Var]
212
202
  ] = None,
213
203
  **props,
214
204
  ) -> "RadioCardsRoot":
@@ -262,50 +252,40 @@ class RadioCardsItem(RadixThemesComponent):
262
252
  class_name: Optional[Any] = None,
263
253
  autofocus: Optional[bool] = None,
264
254
  custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
265
- on_blur: Optional[
266
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
267
- ] = None,
268
- on_click: Optional[
269
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
270
- ] = None,
255
+ on_blur: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
256
+ on_click: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
271
257
  on_context_menu: Optional[
272
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
258
+ Union[EventHandler, EventSpec, list, Callable, Var]
273
259
  ] = None,
274
260
  on_double_click: Optional[
275
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
276
- ] = None,
277
- on_focus: Optional[
278
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
279
- ] = None,
280
- on_mount: Optional[
281
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
261
+ Union[EventHandler, EventSpec, list, Callable, Var]
282
262
  ] = None,
263
+ on_focus: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
264
+ on_mount: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
283
265
  on_mouse_down: Optional[
284
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
266
+ Union[EventHandler, EventSpec, list, Callable, Var]
285
267
  ] = None,
286
268
  on_mouse_enter: Optional[
287
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
269
+ Union[EventHandler, EventSpec, list, Callable, Var]
288
270
  ] = None,
289
271
  on_mouse_leave: Optional[
290
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
272
+ Union[EventHandler, EventSpec, list, Callable, Var]
291
273
  ] = None,
292
274
  on_mouse_move: Optional[
293
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
275
+ Union[EventHandler, EventSpec, list, Callable, Var]
294
276
  ] = None,
295
277
  on_mouse_out: Optional[
296
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
278
+ Union[EventHandler, EventSpec, list, Callable, Var]
297
279
  ] = None,
298
280
  on_mouse_over: Optional[
299
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
281
+ Union[EventHandler, EventSpec, list, Callable, Var]
300
282
  ] = None,
301
283
  on_mouse_up: Optional[
302
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
303
- ] = None,
304
- on_scroll: Optional[
305
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
284
+ Union[EventHandler, EventSpec, list, Callable, Var]
306
285
  ] = None,
286
+ on_scroll: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
307
287
  on_unmount: Optional[
308
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
288
+ Union[EventHandler, EventSpec, list, Callable, Var]
309
289
  ] = None,
310
290
  **props,
311
291
  ) -> "RadioCardsItem":
@@ -10,7 +10,9 @@ from reflex.components.core.breakpoints import Responsive
10
10
  from reflex.components.radix.themes.layout.flex import Flex
11
11
  from reflex.components.radix.themes.typography.text import Text
12
12
  from reflex.event import EventHandler
13
- from reflex.vars import Var
13
+ from reflex.utils import types
14
+ from reflex.vars.base import LiteralVar, Var
15
+ from reflex.vars.sequence import StringVar
14
16
 
15
17
  from ..base import (
16
18
  LiteralAccentColor,
@@ -27,14 +29,10 @@ class RadioGroupRoot(RadixThemesComponent):
27
29
  tag = "RadioGroup.Root"
28
30
 
29
31
  # The size of the radio group: "1" | "2" | "3"
30
- size: Var[Responsive[Literal["1", "2", "3"]]] = Var.create_safe(
31
- "2", _var_is_string=True
32
- )
32
+ size: Var[Responsive[Literal["1", "2", "3"]]] = LiteralVar.create("2")
33
33
 
34
34
  # The variant of the radio group
35
- variant: Var[Literal["classic", "surface", "soft"]] = Var.create_safe(
36
- "classic", _var_is_string=True
37
- )
35
+ variant: Var[Literal["classic", "surface", "soft"]] = LiteralVar.create("classic")
38
36
 
39
37
  # The color of the radio group
40
38
  color_scheme: Var[LiteralAccentColor]
@@ -86,20 +84,16 @@ class HighLevelRadioGroup(RadixThemesComponent):
86
84
  items: Var[List[str]]
87
85
 
88
86
  # The direction of the radio group.
89
- direction: Var[LiteralFlexDirection] = Var.create_safe(
90
- "column", _var_is_string=True
91
- )
87
+ direction: Var[LiteralFlexDirection] = LiteralVar.create("column")
92
88
 
93
89
  # The gap between the items of the radio group.
94
- spacing: Var[LiteralSpacing] = Var.create_safe("2", _var_is_string=True)
90
+ spacing: Var[LiteralSpacing] = LiteralVar.create("2")
95
91
 
96
92
  # The size of the radio group.
97
- size: Var[Literal["1", "2", "3"]] = Var.create_safe("2", _var_is_string=True)
93
+ size: Var[Literal["1", "2", "3"]] = LiteralVar.create("2")
98
94
 
99
95
  # The variant of the radio group
100
- variant: Var[Literal["classic", "surface", "soft"]] = Var.create_safe(
101
- "classic", _var_is_string=True
102
- )
96
+ variant: Var[Literal["classic", "surface", "soft"]] = LiteralVar.create("classic")
103
97
 
104
98
  # The color of the radio group
105
99
  color_scheme: Var[LiteralAccentColor]
@@ -139,6 +133,9 @@ class HighLevelRadioGroup(RadixThemesComponent):
139
133
 
140
134
  Returns:
141
135
  The created radio group component.
136
+
137
+ Raises:
138
+ TypeError: If the type of items is invalid.
142
139
  """
143
140
  direction = props.pop("direction", "column")
144
141
  spacing = props.pop("spacing", "2")
@@ -147,34 +144,39 @@ class HighLevelRadioGroup(RadixThemesComponent):
147
144
  color_scheme = props.pop("color_scheme", None)
148
145
  default_value = props.pop("default_value", "")
149
146
 
150
- default_value = Var.create(default_value, _var_is_string=True)
147
+ if (
148
+ not isinstance(items, (list, Var))
149
+ or isinstance(items, Var)
150
+ and not types._issubclass(items._var_type, list)
151
+ ):
152
+ items_type = type(items) if not isinstance(items, Var) else items._var_type
153
+ raise TypeError(
154
+ f"The radio group component takes in a list, got {items_type} instead"
155
+ )
156
+
157
+ default_value = LiteralVar.create(default_value)
151
158
 
152
159
  # convert only non-strings to json(JSON.stringify) so quotes are not rendered
153
160
  # for string literal types.
154
161
  if isinstance(default_value, str) or (
155
162
  isinstance(default_value, Var) and default_value._var_type is str
156
163
  ):
157
- default_value = Var.create(default_value, _var_is_string=True) # type: ignore
164
+ default_value = LiteralVar.create(default_value) # type: ignore
158
165
  else:
159
- default_value = (
160
- Var.create(default_value, _var_is_string=False)
161
- .to_string() # type: ignore
162
- ._replace(_var_is_local=False)
163
- )
166
+ default_value = LiteralVar.create(default_value).to_string()
164
167
 
165
- def radio_group_item(value: str | Var) -> Component:
166
- item_value = Var.create(value, _var_is_string=False) # type: ignore
168
+ def radio_group_item(value: Var) -> Component:
167
169
  item_value = rx.cond(
168
- item_value._type() == str, # type: ignore
169
- item_value,
170
- item_value.to_string()._replace(_var_is_local=False), # type: ignore
171
- )._replace(_var_type=str)
170
+ value.js_type() == "string",
171
+ value,
172
+ value.to_string(),
173
+ ).to(StringVar)
172
174
 
173
175
  return Text.create(
174
176
  Flex.create(
175
177
  RadioGroupItem.create(
176
178
  value=item_value,
177
- disabled=props.get("disabled", Var.create(False)),
179
+ disabled=props.get("disabled", LiteralVar.create(False)),
178
180
  ),
179
181
  item_value,
180
182
  spacing="2",
@@ -183,8 +185,7 @@ class HighLevelRadioGroup(RadixThemesComponent):
183
185
  as_="label",
184
186
  )
185
187
 
186
- items = Var.create(items) # type: ignore
187
- children = [rx.foreach(items, radio_group_item)]
188
+ children = [rx.foreach(LiteralVar.create(items), radio_group_item)]
188
189
 
189
190
  return RadioGroupRoot.create(
190
191
  Flex.create(