reflex 0.6.0__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 (253) hide show
  1. reflex/.templates/jinja/custom_components/pyproject.toml.jinja2 +2 -2
  2. reflex/.templates/jinja/web/pages/_app.js.jinja2 +1 -1
  3. reflex/.templates/jinja/web/pages/utils.js.jinja2 +2 -2
  4. reflex/.templates/web/components/reflex/chakra_color_mode_provider.js +36 -0
  5. reflex/.templates/web/utils/state.js +1 -3
  6. reflex/__init__.py +2 -8
  7. reflex/__init__.pyi +1 -2
  8. reflex/app.py +2 -4
  9. reflex/app_module_for_backend.py +1 -1
  10. reflex/base.py +1 -1
  11. reflex/compiler/compiler.py +2 -2
  12. reflex/compiler/utils.py +3 -3
  13. reflex/components/base/app_wrap.py +2 -2
  14. reflex/components/base/app_wrap.pyi +27 -17
  15. reflex/components/base/bare.py +5 -4
  16. reflex/components/base/body.pyi +27 -17
  17. reflex/components/base/document.pyi +131 -81
  18. reflex/components/base/error_boundary.py +7 -6
  19. reflex/components/base/error_boundary.pyi +33 -20
  20. reflex/components/base/fragment.pyi +27 -17
  21. reflex/components/base/head.pyi +53 -33
  22. reflex/components/base/link.py +1 -1
  23. reflex/components/base/link.pyi +54 -33
  24. reflex/components/base/meta.pyi +105 -65
  25. reflex/components/base/script.py +2 -1
  26. reflex/components/base/script.pyi +38 -21
  27. reflex/components/component.py +47 -53
  28. reflex/components/core/banner.py +27 -23
  29. reflex/components/core/banner.pyi +171 -134
  30. reflex/components/core/client_side_routing.py +3 -2
  31. reflex/components/core/client_side_routing.pyi +54 -33
  32. reflex/components/core/clipboard.py +1 -2
  33. reflex/components/core/clipboard.pyi +33 -20
  34. reflex/components/core/cond.py +5 -5
  35. reflex/components/core/debounce.py +5 -5
  36. reflex/components/core/debounce.pyi +33 -20
  37. reflex/components/core/foreach.py +4 -3
  38. reflex/components/core/html.py +1 -1
  39. reflex/components/core/html.pyi +46 -35
  40. reflex/components/core/match.py +17 -17
  41. reflex/components/core/upload.py +23 -17
  42. reflex/components/core/upload.pyi +124 -78
  43. reflex/components/datadisplay/code.py +10 -9
  44. reflex/components/datadisplay/code.pyi +409 -299
  45. reflex/components/datadisplay/dataeditor.py +10 -8
  46. reflex/components/datadisplay/dataeditor.pyi +53 -40
  47. reflex/components/el/element.pyi +27 -17
  48. reflex/components/el/elements/base.py +1 -1
  49. reflex/components/el/elements/base.pyi +45 -34
  50. reflex/components/el/elements/forms.py +16 -16
  51. reflex/components/el/elements/forms.pyi +707 -554
  52. reflex/components/el/elements/inline.py +1 -1
  53. reflex/components/el/elements/inline.pyi +1218 -937
  54. reflex/components/el/elements/media.py +1 -1
  55. reflex/components/el/elements/media.pyi +997 -786
  56. reflex/components/el/elements/metadata.py +6 -3
  57. reflex/components/el/elements/metadata.pyi +242 -181
  58. reflex/components/el/elements/other.py +1 -1
  59. reflex/components/el/elements/other.pyi +306 -235
  60. reflex/components/el/elements/scripts.py +1 -1
  61. reflex/components/el/elements/scripts.pyi +140 -109
  62. reflex/components/el/elements/sectioning.py +2 -0
  63. reflex/components/el/elements/sectioning.pyi +647 -496
  64. reflex/components/el/elements/tables.py +1 -1
  65. reflex/components/el/elements/tables.pyi +452 -351
  66. reflex/components/el/elements/typography.py +1 -1
  67. reflex/components/el/elements/typography.pyi +657 -506
  68. reflex/components/gridjs/datatable.py +9 -6
  69. reflex/components/gridjs/datatable.pyi +56 -35
  70. reflex/components/lucide/icon.py +1 -1
  71. reflex/components/lucide/icon.pyi +54 -33
  72. reflex/components/markdown/markdown.py +31 -26
  73. reflex/components/markdown/markdown.pyi +37 -27
  74. reflex/components/moment/moment.py +12 -13
  75. reflex/components/moment/moment.pyi +35 -23
  76. reflex/components/next/base.pyi +27 -17
  77. reflex/components/next/image.py +1 -1
  78. reflex/components/next/image.pyi +37 -22
  79. reflex/components/next/link.py +1 -1
  80. reflex/components/next/link.pyi +28 -17
  81. reflex/components/next/video.py +1 -1
  82. reflex/components/next/video.pyi +28 -17
  83. reflex/components/plotly/plotly.py +13 -12
  84. reflex/components/plotly/plotly.pyi +54 -39
  85. reflex/components/props.py +1 -1
  86. reflex/components/radix/__init__.pyi +0 -1
  87. reflex/components/radix/primitives/__init__.pyi +0 -1
  88. reflex/components/radix/primitives/accordion.py +4 -4
  89. reflex/components/radix/primitives/accordion.pyi +495 -424
  90. reflex/components/radix/primitives/base.py +1 -1
  91. reflex/components/radix/primitives/base.pyi +54 -33
  92. reflex/components/radix/primitives/drawer.py +1 -1
  93. reflex/components/radix/primitives/drawer.pyi +273 -172
  94. reflex/components/radix/primitives/form.py +1 -1
  95. reflex/components/radix/primitives/form.pyi +364 -257
  96. reflex/components/radix/primitives/progress.py +1 -1
  97. reflex/components/radix/primitives/progress.pyi +282 -231
  98. reflex/components/radix/primitives/slider.py +1 -1
  99. reflex/components/radix/primitives/slider.pyi +138 -87
  100. reflex/components/radix/themes/base.py +24 -3
  101. reflex/components/radix/themes/base.pyi +250 -178
  102. reflex/components/radix/themes/color_mode.py +5 -5
  103. reflex/components/radix/themes/color_mode.pyi +220 -187
  104. reflex/components/radix/themes/components/alert_dialog.py +1 -1
  105. reflex/components/radix/themes/components/alert_dialog.pyi +207 -136
  106. reflex/components/radix/themes/components/aspect_ratio.py +1 -1
  107. reflex/components/radix/themes/components/aspect_ratio.pyi +28 -17
  108. reflex/components/radix/themes/components/avatar.py +1 -1
  109. reflex/components/radix/themes/components/avatar.pyi +81 -70
  110. reflex/components/radix/themes/components/badge.py +1 -1
  111. reflex/components/radix/themes/components/badge.pyi +99 -88
  112. reflex/components/radix/themes/components/button.py +1 -1
  113. reflex/components/radix/themes/components/button.pyi +109 -98
  114. reflex/components/radix/themes/components/callout.py +1 -1
  115. reflex/components/radix/themes/components/callout.pyi +373 -322
  116. reflex/components/radix/themes/components/card.py +1 -1
  117. reflex/components/radix/themes/components/card.pyi +49 -38
  118. reflex/components/radix/themes/components/checkbox.py +2 -1
  119. reflex/components/radix/themes/components/checkbox.pyi +245 -208
  120. reflex/components/radix/themes/components/checkbox_cards.py +1 -1
  121. reflex/components/radix/themes/components/checkbox_cards.pyi +115 -94
  122. reflex/components/radix/themes/components/checkbox_group.py +1 -1
  123. reflex/components/radix/themes/components/checkbox_group.pyi +107 -86
  124. reflex/components/radix/themes/components/context_menu.py +1 -1
  125. reflex/components/radix/themes/components/context_menu.pyi +319 -238
  126. reflex/components/radix/themes/components/data_list.py +1 -1
  127. reflex/components/radix/themes/components/data_list.pyi +171 -130
  128. reflex/components/radix/themes/components/dialog.py +1 -1
  129. reflex/components/radix/themes/components/dialog.pyi +210 -139
  130. reflex/components/radix/themes/components/dropdown_menu.py +1 -1
  131. reflex/components/radix/themes/components/dropdown_menu.pyi +332 -249
  132. reflex/components/radix/themes/components/hover_card.py +1 -1
  133. reflex/components/radix/themes/components/hover_card.pyi +131 -90
  134. reflex/components/radix/themes/components/icon_button.py +3 -2
  135. reflex/components/radix/themes/components/icon_button.pyi +109 -98
  136. reflex/components/radix/themes/components/inset.py +1 -1
  137. reflex/components/radix/themes/components/inset.pyi +58 -47
  138. reflex/components/radix/themes/components/popover.py +1 -1
  139. reflex/components/radix/themes/components/popover.pyi +136 -95
  140. reflex/components/radix/themes/components/progress.py +1 -1
  141. reflex/components/radix/themes/components/progress.pyi +82 -71
  142. reflex/components/radix/themes/components/radio.py +1 -1
  143. reflex/components/radix/themes/components/radio.pyi +80 -69
  144. reflex/components/radix/themes/components/radio_cards.py +1 -1
  145. reflex/components/radix/themes/components/radio_cards.pyi +119 -98
  146. reflex/components/radix/themes/components/radio_group.py +11 -8
  147. reflex/components/radix/themes/components/radio_group.pyi +271 -228
  148. reflex/components/radix/themes/components/scroll_area.py +1 -1
  149. reflex/components/radix/themes/components/scroll_area.pyi +32 -21
  150. reflex/components/radix/themes/components/segmented_control.py +1 -1
  151. reflex/components/radix/themes/components/segmented_control.pyi +113 -90
  152. reflex/components/radix/themes/components/select.py +3 -2
  153. reflex/components/radix/themes/components/select.pyi +471 -374
  154. reflex/components/radix/themes/components/separator.py +2 -1
  155. reflex/components/radix/themes/components/separator.pyi +80 -69
  156. reflex/components/radix/themes/components/skeleton.py +1 -1
  157. reflex/components/radix/themes/components/skeleton.pyi +34 -23
  158. reflex/components/radix/themes/components/slider.py +3 -2
  159. reflex/components/radix/themes/components/slider.pyi +88 -75
  160. reflex/components/radix/themes/components/spinner.py +1 -1
  161. reflex/components/radix/themes/components/spinner.pyi +30 -19
  162. reflex/components/radix/themes/components/switch.py +1 -1
  163. reflex/components/radix/themes/components/switch.pyi +84 -71
  164. reflex/components/radix/themes/components/table.py +1 -1
  165. reflex/components/radix/themes/components/table.pyi +332 -261
  166. reflex/components/radix/themes/components/tabs.py +1 -1
  167. reflex/components/radix/themes/components/tabs.pyi +194 -139
  168. reflex/components/radix/themes/components/text_area.py +1 -1
  169. reflex/components/radix/themes/components/text_area.pyi +111 -96
  170. reflex/components/radix/themes/components/text_field.py +1 -1
  171. reflex/components/radix/themes/components/text_field.pyi +286 -247
  172. reflex/components/radix/themes/components/tooltip.py +1 -1
  173. reflex/components/radix/themes/components/tooltip.pyi +37 -26
  174. reflex/components/radix/themes/layout/__init__.pyi +0 -1
  175. reflex/components/radix/themes/layout/base.py +1 -1
  176. reflex/components/radix/themes/layout/base.pyi +67 -56
  177. reflex/components/radix/themes/layout/box.pyi +45 -34
  178. reflex/components/radix/themes/layout/center.pyi +67 -56
  179. reflex/components/radix/themes/layout/container.py +2 -1
  180. reflex/components/radix/themes/layout/container.pyi +47 -36
  181. reflex/components/radix/themes/layout/flex.py +1 -1
  182. reflex/components/radix/themes/layout/flex.pyi +67 -56
  183. reflex/components/radix/themes/layout/grid.py +1 -1
  184. reflex/components/radix/themes/layout/grid.pyi +75 -64
  185. reflex/components/radix/themes/layout/list.py +6 -5
  186. reflex/components/radix/themes/layout/list.pyi +244 -193
  187. reflex/components/radix/themes/layout/section.py +2 -1
  188. reflex/components/radix/themes/layout/section.pyi +47 -36
  189. reflex/components/radix/themes/layout/spacer.pyi +67 -56
  190. reflex/components/radix/themes/layout/stack.py +1 -1
  191. reflex/components/radix/themes/layout/stack.pyi +159 -128
  192. reflex/components/radix/themes/typography/blockquote.py +1 -1
  193. reflex/components/radix/themes/typography/blockquote.pyi +100 -89
  194. reflex/components/radix/themes/typography/code.py +1 -1
  195. reflex/components/radix/themes/typography/code.pyi +101 -90
  196. reflex/components/radix/themes/typography/heading.py +1 -1
  197. reflex/components/radix/themes/typography/heading.pyi +107 -96
  198. reflex/components/radix/themes/typography/link.py +1 -1
  199. reflex/components/radix/themes/typography/link.pyi +113 -102
  200. reflex/components/radix/themes/typography/text.py +1 -1
  201. reflex/components/radix/themes/typography/text.pyi +572 -501
  202. reflex/components/react_player/audio.pyi +60 -33
  203. reflex/components/react_player/react_player.py +1 -1
  204. reflex/components/react_player/react_player.pyi +60 -33
  205. reflex/components/react_player/video.pyi +60 -33
  206. reflex/components/recharts/cartesian.py +3 -2
  207. reflex/components/recharts/cartesian.pyi +861 -678
  208. reflex/components/recharts/charts.py +5 -4
  209. reflex/components/recharts/charts.pyi +357 -252
  210. reflex/components/recharts/general.py +2 -1
  211. reflex/components/recharts/general.pyi +231 -180
  212. reflex/components/recharts/polar.py +5 -4
  213. reflex/components/recharts/polar.pyi +181 -144
  214. reflex/components/recharts/recharts.pyi +53 -33
  215. reflex/components/sonner/toast.py +17 -16
  216. reflex/components/sonner/toast.pyi +47 -36
  217. reflex/components/suneditor/editor.py +3 -2
  218. reflex/components/suneditor/editor.pyi +78 -55
  219. reflex/components/tags/cond_tag.py +4 -6
  220. reflex/components/tags/iter_tag.py +16 -28
  221. reflex/components/tags/match_tag.py +4 -6
  222. reflex/components/tags/tag.py +23 -40
  223. reflex/custom_components/custom_components.py +1 -3
  224. reflex/event.py +65 -113
  225. reflex/experimental/client_state.py +24 -25
  226. reflex/experimental/hooks.py +16 -16
  227. reflex/experimental/layout.py +5 -5
  228. reflex/experimental/layout.pyi +187 -136
  229. reflex/{vars → ivars}/__init__.py +2 -6
  230. reflex/{vars → ivars}/base.py +216 -599
  231. reflex/{vars → ivars}/function.py +19 -15
  232. reflex/{vars → ivars}/number.py +20 -41
  233. reflex/{vars → ivars}/object.py +30 -28
  234. reflex/{vars → ivars}/sequence.py +50 -53
  235. reflex/middleware/hydrate_middleware.py +0 -2
  236. reflex/middleware/middleware.py +3 -3
  237. reflex/state.py +82 -148
  238. reflex/style.py +22 -21
  239. reflex/utils/exceptions.py +0 -20
  240. reflex/utils/format.py +34 -54
  241. reflex/utils/imports.py +73 -16
  242. reflex/utils/prerequisites.py +15 -35
  243. reflex/utils/pyi_generator.py +8 -13
  244. reflex/utils/serializers.py +22 -12
  245. reflex/utils/telemetry.py +2 -3
  246. reflex/utils/types.py +5 -10
  247. reflex/vars.py +501 -0
  248. {reflex-0.6.0.dist-info → reflex-0.6.0a1.dist-info}/METADATA +5 -4
  249. reflex-0.6.0a1.dist-info/RECORD +384 -0
  250. reflex-0.6.0.dist-info/RECORD +0 -382
  251. {reflex-0.6.0.dist-info → reflex-0.6.0a1.dist-info}/LICENSE +0 -0
  252. {reflex-0.6.0.dist-info → reflex-0.6.0a1.dist-info}/WHEEL +0 -0
  253. {reflex-0.6.0.dist-info → reflex-0.6.0a1.dist-info}/entry_points.txt +0 -0
@@ -7,8 +7,9 @@ from typing import Any, Callable, Dict, Literal, Optional, Union, overload
7
7
 
8
8
  from reflex.components.core.breakpoints import Breakpoints
9
9
  from reflex.event import EventHandler, EventSpec
10
+ from reflex.ivars.base import ImmutableVar
10
11
  from reflex.style import Style
11
- from reflex.vars.base import Var
12
+ from reflex.vars import Var
12
13
 
13
14
  from ..base import RadixThemesComponent
14
15
 
@@ -20,81 +21,81 @@ class Radio(RadixThemesComponent):
20
21
  *children,
21
22
  size: Optional[
22
23
  Union[
23
- Breakpoints[str, Literal["1", "2", "3"]],
24
- Literal["1", "2", "3"],
25
24
  Var[
26
25
  Union[
27
26
  Breakpoints[str, Literal["1", "2", "3"]], Literal["1", "2", "3"]
28
27
  ]
29
28
  ],
29
+ Literal["1", "2", "3"],
30
+ Breakpoints[str, Literal["1", "2", "3"]],
30
31
  ]
31
32
  ] = None,
32
33
  variant: Optional[
33
34
  Union[
34
- Literal["classic", "soft", "surface"],
35
- Var[Literal["classic", "soft", "surface"]],
35
+ Var[Literal["classic", "surface", "soft"]],
36
+ Literal["classic", "surface", "soft"],
36
37
  ]
37
38
  ] = None,
38
39
  color_scheme: Optional[
39
40
  Union[
40
- Literal[
41
- "amber",
42
- "blue",
43
- "bronze",
44
- "brown",
45
- "crimson",
46
- "cyan",
47
- "gold",
48
- "grass",
49
- "gray",
50
- "green",
51
- "indigo",
52
- "iris",
53
- "jade",
54
- "lime",
55
- "mint",
56
- "orange",
57
- "pink",
58
- "plum",
59
- "purple",
60
- "red",
61
- "ruby",
62
- "sky",
63
- "teal",
64
- "tomato",
65
- "violet",
66
- "yellow",
67
- ],
68
41
  Var[
69
42
  Literal[
70
- "amber",
71
- "blue",
72
- "bronze",
73
- "brown",
43
+ "tomato",
44
+ "red",
45
+ "ruby",
74
46
  "crimson",
75
- "cyan",
76
- "gold",
77
- "grass",
78
- "gray",
79
- "green",
80
- "indigo",
81
- "iris",
82
- "jade",
83
- "lime",
84
- "mint",
85
- "orange",
86
47
  "pink",
87
48
  "plum",
88
49
  "purple",
89
- "red",
90
- "ruby",
91
- "sky",
92
- "teal",
93
- "tomato",
94
50
  "violet",
51
+ "iris",
52
+ "indigo",
53
+ "blue",
54
+ "cyan",
55
+ "teal",
56
+ "jade",
57
+ "green",
58
+ "grass",
59
+ "brown",
60
+ "orange",
61
+ "sky",
62
+ "mint",
63
+ "lime",
95
64
  "yellow",
65
+ "amber",
66
+ "gold",
67
+ "bronze",
68
+ "gray",
96
69
  ]
97
70
  ],
71
+ Literal[
72
+ "tomato",
73
+ "red",
74
+ "ruby",
75
+ "crimson",
76
+ "pink",
77
+ "plum",
78
+ "purple",
79
+ "violet",
80
+ "iris",
81
+ "indigo",
82
+ "blue",
83
+ "cyan",
84
+ "teal",
85
+ "jade",
86
+ "green",
87
+ "grass",
88
+ "brown",
89
+ "orange",
90
+ "sky",
91
+ "mint",
92
+ "lime",
93
+ "yellow",
94
+ "amber",
95
+ "gold",
96
+ "bronze",
97
+ "gray",
98
+ ],
98
99
  ]
99
100
  ] = None,
100
101
  high_contrast: Optional[Union[Var[bool], bool]] = None,
@@ -103,41 +104,51 @@ class Radio(RadixThemesComponent):
103
104
  id: Optional[Any] = None,
104
105
  class_name: Optional[Any] = None,
105
106
  autofocus: Optional[bool] = None,
106
- custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
107
- on_blur: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
108
- on_click: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
107
+ custom_attrs: Optional[Dict[str, Union[ImmutableVar, str]]] = None,
108
+ on_blur: Optional[
109
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
110
+ ] = None,
111
+ on_click: Optional[
112
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
113
+ ] = None,
109
114
  on_context_menu: Optional[
110
- Union[EventHandler, EventSpec, list, Callable, Var]
115
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
111
116
  ] = None,
112
117
  on_double_click: Optional[
113
- Union[EventHandler, EventSpec, list, Callable, Var]
118
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
119
+ ] = None,
120
+ on_focus: Optional[
121
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
122
+ ] = None,
123
+ on_mount: Optional[
124
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
114
125
  ] = None,
115
- on_focus: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
116
- on_mount: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
117
126
  on_mouse_down: Optional[
118
- Union[EventHandler, EventSpec, list, Callable, Var]
127
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
119
128
  ] = None,
120
129
  on_mouse_enter: Optional[
121
- Union[EventHandler, EventSpec, list, Callable, Var]
130
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
122
131
  ] = None,
123
132
  on_mouse_leave: Optional[
124
- Union[EventHandler, EventSpec, list, Callable, Var]
133
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
125
134
  ] = None,
126
135
  on_mouse_move: Optional[
127
- Union[EventHandler, EventSpec, list, Callable, Var]
136
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
128
137
  ] = None,
129
138
  on_mouse_out: Optional[
130
- Union[EventHandler, EventSpec, list, Callable, Var]
139
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
131
140
  ] = None,
132
141
  on_mouse_over: Optional[
133
- Union[EventHandler, EventSpec, list, Callable, Var]
142
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
134
143
  ] = None,
135
144
  on_mouse_up: Optional[
136
- Union[EventHandler, EventSpec, list, Callable, Var]
145
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
146
+ ] = None,
147
+ on_scroll: Optional[
148
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
137
149
  ] = None,
138
- on_scroll: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
139
150
  on_unmount: Optional[
140
- Union[EventHandler, EventSpec, list, Callable, Var]
151
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
141
152
  ] = None,
142
153
  **props,
143
154
  ) -> "Radio":
@@ -5,7 +5,7 @@ from typing import Literal, Union
5
5
 
6
6
  from reflex.components.core.breakpoints import Responsive
7
7
  from reflex.event import EventHandler
8
- from reflex.vars.base import Var
8
+ from reflex.vars import Var
9
9
 
10
10
  from ..base import LiteralAccentColor, RadixThemesComponent
11
11
 
@@ -8,8 +8,9 @@ from typing import Any, Callable, Dict, Literal, Optional, Union, overload
8
8
 
9
9
  from reflex.components.core.breakpoints import Breakpoints
10
10
  from reflex.event import EventHandler, EventSpec
11
+ from reflex.ivars.base import ImmutableVar
11
12
  from reflex.style import Style
12
- from reflex.vars.base import Var
13
+ from reflex.vars import Var
13
14
 
14
15
  from ..base import RadixThemesComponent
15
16
 
@@ -22,88 +23,83 @@ class RadioCardsRoot(RadixThemesComponent):
22
23
  as_child: Optional[Union[Var[bool], bool]] = None,
23
24
  size: Optional[
24
25
  Union[
25
- Breakpoints[str, Literal["1", "2", "3"]],
26
- Literal["1", "2", "3"],
27
26
  Var[
28
27
  Union[
29
28
  Breakpoints[str, Literal["1", "2", "3"]], Literal["1", "2", "3"]
30
29
  ]
31
30
  ],
31
+ Literal["1", "2", "3"],
32
+ Breakpoints[str, Literal["1", "2", "3"]],
32
33
  ]
33
34
  ] = None,
34
35
  variant: Optional[
35
- Union[Literal["classic", "surface"], Var[Literal["classic", "surface"]]]
36
+ Union[Var[Literal["classic", "surface"]], Literal["classic", "surface"]]
36
37
  ] = None,
37
38
  color_scheme: Optional[
38
39
  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
- ],
67
40
  Var[
68
41
  Literal[
69
- "amber",
70
- "blue",
71
- "bronze",
72
- "brown",
42
+ "tomato",
43
+ "red",
44
+ "ruby",
73
45
  "crimson",
74
- "cyan",
75
- "gold",
76
- "grass",
77
- "gray",
78
- "green",
79
- "indigo",
80
- "iris",
81
- "jade",
82
- "lime",
83
- "mint",
84
- "orange",
85
46
  "pink",
86
47
  "plum",
87
48
  "purple",
88
- "red",
89
- "ruby",
90
- "sky",
91
- "teal",
92
- "tomato",
93
49
  "violet",
50
+ "iris",
51
+ "indigo",
52
+ "blue",
53
+ "cyan",
54
+ "teal",
55
+ "jade",
56
+ "green",
57
+ "grass",
58
+ "brown",
59
+ "orange",
60
+ "sky",
61
+ "mint",
62
+ "lime",
94
63
  "yellow",
64
+ "amber",
65
+ "gold",
66
+ "bronze",
67
+ "gray",
95
68
  ]
96
69
  ],
70
+ Literal[
71
+ "tomato",
72
+ "red",
73
+ "ruby",
74
+ "crimson",
75
+ "pink",
76
+ "plum",
77
+ "purple",
78
+ "violet",
79
+ "iris",
80
+ "indigo",
81
+ "blue",
82
+ "cyan",
83
+ "teal",
84
+ "jade",
85
+ "green",
86
+ "grass",
87
+ "brown",
88
+ "orange",
89
+ "sky",
90
+ "mint",
91
+ "lime",
92
+ "yellow",
93
+ "amber",
94
+ "gold",
95
+ "bronze",
96
+ "gray",
97
+ ],
97
98
  ]
98
99
  ] = None,
99
100
  high_contrast: Optional[Union[Var[bool], bool]] = None,
100
101
  columns: Optional[
101
102
  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"],
107
103
  Var[
108
104
  Union[
109
105
  Breakpoints[
@@ -118,15 +114,15 @@ class RadioCardsRoot(RadixThemesComponent):
118
114
  ]
119
115
  ],
120
116
  str,
121
- ]
122
- ] = None,
123
- gap: Optional[
124
- Union[
117
+ Literal["1", "2", "3", "4", "5", "6", "7", "8", "9"],
125
118
  Breakpoints[
126
119
  str,
127
120
  Union[Literal["1", "2", "3", "4", "5", "6", "7", "8", "9"], str],
128
121
  ],
129
- Literal["1", "2", "3", "4", "5", "6", "7", "8", "9"],
122
+ ]
123
+ ] = None,
124
+ gap: Optional[
125
+ Union[
130
126
  Var[
131
127
  Union[
132
128
  Breakpoints[
@@ -141,6 +137,11 @@ class RadioCardsRoot(RadixThemesComponent):
141
137
  ]
142
138
  ],
143
139
  str,
140
+ Literal["1", "2", "3", "4", "5", "6", "7", "8", "9"],
141
+ Breakpoints[
142
+ str,
143
+ Union[Literal["1", "2", "3", "4", "5", "6", "7", "8", "9"], str],
144
+ ],
144
145
  ]
145
146
  ] = None,
146
147
  default_value: Optional[Union[Var[str], str]] = None,
@@ -150,55 +151,65 @@ class RadioCardsRoot(RadixThemesComponent):
150
151
  required: Optional[Union[Var[bool], bool]] = None,
151
152
  orientation: Optional[
152
153
  Union[
153
- Literal["horizontal", "undefined", "vertical"],
154
- Var[Literal["horizontal", "undefined", "vertical"]],
154
+ Var[Literal["horizontal", "vertical", "undefined"]],
155
+ Literal["horizontal", "vertical", "undefined"],
155
156
  ]
156
157
  ] = None,
157
- dir: Optional[Union[Literal["ltr", "rtl"], Var[Literal["ltr", "rtl"]]]] = None,
158
+ dir: Optional[Union[Var[Literal["ltr", "rtl"]], Literal["ltr", "rtl"]]] = None,
158
159
  loop: Optional[Union[Var[bool], bool]] = None,
159
160
  style: Optional[Style] = None,
160
161
  key: Optional[Any] = None,
161
162
  id: Optional[Any] = None,
162
163
  class_name: Optional[Any] = None,
163
164
  autofocus: Optional[bool] = None,
164
- custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
165
- on_blur: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
166
- on_click: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
165
+ custom_attrs: Optional[Dict[str, Union[ImmutableVar, str]]] = None,
166
+ on_blur: Optional[
167
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
168
+ ] = None,
169
+ on_click: Optional[
170
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
171
+ ] = None,
167
172
  on_context_menu: Optional[
168
- Union[EventHandler, EventSpec, list, Callable, Var]
173
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
169
174
  ] = None,
170
175
  on_double_click: Optional[
171
- Union[EventHandler, EventSpec, list, Callable, Var]
176
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
177
+ ] = None,
178
+ on_focus: Optional[
179
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
180
+ ] = None,
181
+ on_mount: Optional[
182
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
172
183
  ] = None,
173
- on_focus: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
174
- on_mount: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
175
184
  on_mouse_down: Optional[
176
- Union[EventHandler, EventSpec, list, Callable, Var]
185
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
177
186
  ] = None,
178
187
  on_mouse_enter: Optional[
179
- Union[EventHandler, EventSpec, list, Callable, Var]
188
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
180
189
  ] = None,
181
190
  on_mouse_leave: Optional[
182
- Union[EventHandler, EventSpec, list, Callable, Var]
191
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
183
192
  ] = None,
184
193
  on_mouse_move: Optional[
185
- Union[EventHandler, EventSpec, list, Callable, Var]
194
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
186
195
  ] = None,
187
196
  on_mouse_out: Optional[
188
- Union[EventHandler, EventSpec, list, Callable, Var]
197
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
189
198
  ] = None,
190
199
  on_mouse_over: Optional[
191
- Union[EventHandler, EventSpec, list, Callable, Var]
200
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
192
201
  ] = None,
193
202
  on_mouse_up: Optional[
194
- Union[EventHandler, EventSpec, list, Callable, Var]
203
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
204
+ ] = None,
205
+ on_scroll: Optional[
206
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
195
207
  ] = None,
196
- on_scroll: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
197
208
  on_unmount: Optional[
198
- Union[EventHandler, EventSpec, list, Callable, Var]
209
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
199
210
  ] = None,
200
211
  on_value_change: Optional[
201
- Union[EventHandler, EventSpec, list, Callable, Var]
212
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
202
213
  ] = None,
203
214
  **props,
204
215
  ) -> "RadioCardsRoot":
@@ -251,41 +262,51 @@ class RadioCardsItem(RadixThemesComponent):
251
262
  id: Optional[Any] = None,
252
263
  class_name: Optional[Any] = None,
253
264
  autofocus: Optional[bool] = None,
254
- custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
255
- on_blur: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
256
- on_click: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
265
+ custom_attrs: Optional[Dict[str, Union[ImmutableVar, str]]] = None,
266
+ on_blur: Optional[
267
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
268
+ ] = None,
269
+ on_click: Optional[
270
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
271
+ ] = None,
257
272
  on_context_menu: Optional[
258
- Union[EventHandler, EventSpec, list, Callable, Var]
273
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
259
274
  ] = None,
260
275
  on_double_click: Optional[
261
- Union[EventHandler, EventSpec, list, Callable, Var]
276
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
277
+ ] = None,
278
+ on_focus: Optional[
279
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
280
+ ] = None,
281
+ on_mount: Optional[
282
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
262
283
  ] = None,
263
- on_focus: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
264
- on_mount: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
265
284
  on_mouse_down: Optional[
266
- Union[EventHandler, EventSpec, list, Callable, Var]
285
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
267
286
  ] = None,
268
287
  on_mouse_enter: Optional[
269
- Union[EventHandler, EventSpec, list, Callable, Var]
288
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
270
289
  ] = None,
271
290
  on_mouse_leave: Optional[
272
- Union[EventHandler, EventSpec, list, Callable, Var]
291
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
273
292
  ] = None,
274
293
  on_mouse_move: Optional[
275
- Union[EventHandler, EventSpec, list, Callable, Var]
294
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
276
295
  ] = None,
277
296
  on_mouse_out: Optional[
278
- Union[EventHandler, EventSpec, list, Callable, Var]
297
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
279
298
  ] = None,
280
299
  on_mouse_over: Optional[
281
- Union[EventHandler, EventSpec, list, Callable, Var]
300
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
282
301
  ] = None,
283
302
  on_mouse_up: Optional[
284
- Union[EventHandler, EventSpec, list, Callable, Var]
303
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
304
+ ] = None,
305
+ on_scroll: Optional[
306
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
285
307
  ] = None,
286
- on_scroll: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
287
308
  on_unmount: Optional[
288
- Union[EventHandler, EventSpec, list, Callable, Var]
309
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
289
310
  ] = None,
290
311
  **props,
291
312
  ) -> "RadioCardsItem":
@@ -10,9 +10,10 @@ 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.ivars.base import ImmutableVar, LiteralVar
14
+ from reflex.ivars.sequence import StringVar
13
15
  from reflex.utils import types
14
- from reflex.vars.base import LiteralVar, Var
15
- from reflex.vars.sequence import StringVar
16
+ from reflex.vars import Var
16
17
 
17
18
  from ..base import (
18
19
  LiteralAccentColor,
@@ -145,11 +146,13 @@ class HighLevelRadioGroup(RadixThemesComponent):
145
146
  default_value = props.pop("default_value", "")
146
147
 
147
148
  if (
148
- not isinstance(items, (list, Var))
149
- or isinstance(items, Var)
149
+ not isinstance(items, (list, ImmutableVar))
150
+ or isinstance(items, ImmutableVar)
150
151
  and not types._issubclass(items._var_type, list)
151
152
  ):
152
- items_type = type(items) if not isinstance(items, Var) else items._var_type
153
+ items_type = (
154
+ type(items) if not isinstance(items, ImmutableVar) else items._var_type
155
+ )
153
156
  raise TypeError(
154
157
  f"The radio group component takes in a list, got {items_type} instead"
155
158
  )
@@ -159,13 +162,13 @@ class HighLevelRadioGroup(RadixThemesComponent):
159
162
  # convert only non-strings to json(JSON.stringify) so quotes are not rendered
160
163
  # for string literal types.
161
164
  if isinstance(default_value, str) or (
162
- isinstance(default_value, Var) and default_value._var_type is str
165
+ isinstance(default_value, ImmutableVar) and default_value._var_type is str
163
166
  ):
164
167
  default_value = LiteralVar.create(default_value) # type: ignore
165
168
  else:
166
- default_value = LiteralVar.create(default_value).to_string()
169
+ default_value = ImmutableVar.create_safe(default_value).to_string()
167
170
 
168
- def radio_group_item(value: Var) -> Component:
171
+ def radio_group_item(value: ImmutableVar) -> Component:
169
172
  item_value = rx.cond(
170
173
  value.js_type() == "string",
171
174
  value,