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,7 +7,7 @@ from typing import Any, List, Literal
7
7
  from reflex.components.component import Component, ComponentNamespace
8
8
  from reflex.components.radix.primitives.base import RadixPrimitiveComponentWithClassName
9
9
  from reflex.event import EventHandler
10
- from reflex.vars.base import Var
10
+ from reflex.vars import Var
11
11
 
12
12
  LiteralSliderOrientation = Literal["horizontal", "vertical"]
13
13
  LiteralSliderDir = Literal["ltr", "rtl"]
@@ -8,8 +8,9 @@ from typing import Any, Callable, Dict, List, Literal, Optional, Union, overload
8
8
  from reflex.components.component import Component, ComponentNamespace
9
9
  from reflex.components.radix.primitives.base import RadixPrimitiveComponentWithClassName
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
  LiteralSliderOrientation = Literal["horizontal", "vertical"]
15
16
  LiteralSliderDir = Literal["ltr", "rtl"]
@@ -26,41 +27,51 @@ class SliderComponent(RadixPrimitiveComponentWithClassName):
26
27
  id: Optional[Any] = None,
27
28
  class_name: Optional[Any] = None,
28
29
  autofocus: Optional[bool] = None,
29
- custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
30
- on_blur: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
31
- on_click: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
30
+ custom_attrs: Optional[Dict[str, Union[ImmutableVar, str]]] = None,
31
+ on_blur: Optional[
32
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
33
+ ] = None,
34
+ on_click: Optional[
35
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
36
+ ] = None,
32
37
  on_context_menu: Optional[
33
- Union[EventHandler, EventSpec, list, Callable, Var]
38
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
34
39
  ] = None,
35
40
  on_double_click: Optional[
36
- Union[EventHandler, EventSpec, list, Callable, Var]
41
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
42
+ ] = None,
43
+ on_focus: Optional[
44
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
45
+ ] = None,
46
+ on_mount: Optional[
47
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
37
48
  ] = None,
38
- on_focus: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
39
- on_mount: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
40
49
  on_mouse_down: Optional[
41
- Union[EventHandler, EventSpec, list, Callable, Var]
50
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
42
51
  ] = None,
43
52
  on_mouse_enter: Optional[
44
- Union[EventHandler, EventSpec, list, Callable, Var]
53
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
45
54
  ] = None,
46
55
  on_mouse_leave: Optional[
47
- Union[EventHandler, EventSpec, list, Callable, Var]
56
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
48
57
  ] = None,
49
58
  on_mouse_move: Optional[
50
- Union[EventHandler, EventSpec, list, Callable, Var]
59
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
51
60
  ] = None,
52
61
  on_mouse_out: Optional[
53
- Union[EventHandler, EventSpec, list, Callable, Var]
62
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
54
63
  ] = None,
55
64
  on_mouse_over: Optional[
56
- Union[EventHandler, EventSpec, list, Callable, Var]
65
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
57
66
  ] = None,
58
67
  on_mouse_up: Optional[
59
- Union[EventHandler, EventSpec, list, Callable, Var]
68
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
69
+ ] = None,
70
+ on_scroll: Optional[
71
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
60
72
  ] = None,
61
- on_scroll: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
62
73
  on_unmount: Optional[
63
- Union[EventHandler, EventSpec, list, Callable, Var]
74
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
64
75
  ] = None,
65
76
  **props,
66
77
  ) -> "SliderComponent":
@@ -89,17 +100,17 @@ class SliderRoot(SliderComponent):
89
100
  def create( # type: ignore
90
101
  cls,
91
102
  *children,
92
- default_value: Optional[Union[List[int], Var[List[int]]]] = None,
93
- value: Optional[Union[List[int], Var[List[int]]]] = None,
103
+ default_value: Optional[Union[Var[List[int]], List[int]]] = None,
104
+ value: Optional[Union[Var[List[int]], List[int]]] = None,
94
105
  name: Optional[Union[Var[str], str]] = None,
95
106
  disabled: Optional[Union[Var[bool], bool]] = None,
96
107
  orientation: Optional[
97
108
  Union[
98
- Literal["horizontal", "vertical"],
99
109
  Var[Literal["horizontal", "vertical"]],
110
+ Literal["horizontal", "vertical"],
100
111
  ]
101
112
  ] = None,
102
- dir: Optional[Union[Literal["ltr", "rtl"], Var[Literal["ltr", "rtl"]]]] = None,
113
+ dir: Optional[Union[Var[Literal["ltr", "rtl"]], Literal["ltr", "rtl"]]] = None,
103
114
  inverted: Optional[Union[Var[bool], bool]] = None,
104
115
  min: Optional[Union[Var[int], int]] = None,
105
116
  max: Optional[Union[Var[int], int]] = None,
@@ -111,47 +122,57 @@ class SliderRoot(SliderComponent):
111
122
  id: Optional[Any] = None,
112
123
  class_name: Optional[Any] = None,
113
124
  autofocus: Optional[bool] = None,
114
- custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
115
- on_blur: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
116
- on_click: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
125
+ custom_attrs: Optional[Dict[str, Union[ImmutableVar, str]]] = None,
126
+ on_blur: Optional[
127
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
128
+ ] = None,
129
+ on_click: Optional[
130
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
131
+ ] = None,
117
132
  on_context_menu: Optional[
118
- Union[EventHandler, EventSpec, list, Callable, Var]
133
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
119
134
  ] = None,
120
135
  on_double_click: Optional[
121
- Union[EventHandler, EventSpec, list, Callable, Var]
136
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
137
+ ] = None,
138
+ on_focus: Optional[
139
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
140
+ ] = None,
141
+ on_mount: Optional[
142
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
122
143
  ] = None,
123
- on_focus: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
124
- on_mount: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
125
144
  on_mouse_down: Optional[
126
- Union[EventHandler, EventSpec, list, Callable, Var]
145
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
127
146
  ] = None,
128
147
  on_mouse_enter: Optional[
129
- Union[EventHandler, EventSpec, list, Callable, Var]
148
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
130
149
  ] = None,
131
150
  on_mouse_leave: Optional[
132
- Union[EventHandler, EventSpec, list, Callable, Var]
151
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
133
152
  ] = None,
134
153
  on_mouse_move: Optional[
135
- Union[EventHandler, EventSpec, list, Callable, Var]
154
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
136
155
  ] = None,
137
156
  on_mouse_out: Optional[
138
- Union[EventHandler, EventSpec, list, Callable, Var]
157
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
139
158
  ] = None,
140
159
  on_mouse_over: Optional[
141
- Union[EventHandler, EventSpec, list, Callable, Var]
160
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
142
161
  ] = None,
143
162
  on_mouse_up: Optional[
144
- Union[EventHandler, EventSpec, list, Callable, Var]
163
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
164
+ ] = None,
165
+ on_scroll: Optional[
166
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
145
167
  ] = None,
146
- on_scroll: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
147
168
  on_unmount: Optional[
148
- Union[EventHandler, EventSpec, list, Callable, Var]
169
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
149
170
  ] = None,
150
171
  on_value_change: Optional[
151
- Union[EventHandler, EventSpec, list, Callable, Var]
172
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
152
173
  ] = None,
153
174
  on_value_commit: Optional[
154
- Union[EventHandler, EventSpec, list, Callable, Var]
175
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
155
176
  ] = None,
156
177
  **props,
157
178
  ) -> "SliderRoot":
@@ -186,41 +207,51 @@ class SliderTrack(SliderComponent):
186
207
  id: Optional[Any] = None,
187
208
  class_name: Optional[Any] = None,
188
209
  autofocus: Optional[bool] = None,
189
- custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
190
- on_blur: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
191
- on_click: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
210
+ custom_attrs: Optional[Dict[str, Union[ImmutableVar, str]]] = None,
211
+ on_blur: Optional[
212
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
213
+ ] = None,
214
+ on_click: Optional[
215
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
216
+ ] = None,
192
217
  on_context_menu: Optional[
193
- Union[EventHandler, EventSpec, list, Callable, Var]
218
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
194
219
  ] = None,
195
220
  on_double_click: Optional[
196
- Union[EventHandler, EventSpec, list, Callable, Var]
221
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
222
+ ] = None,
223
+ on_focus: Optional[
224
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
225
+ ] = None,
226
+ on_mount: Optional[
227
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
197
228
  ] = None,
198
- on_focus: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
199
- on_mount: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
200
229
  on_mouse_down: Optional[
201
- Union[EventHandler, EventSpec, list, Callable, Var]
230
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
202
231
  ] = None,
203
232
  on_mouse_enter: Optional[
204
- Union[EventHandler, EventSpec, list, Callable, Var]
233
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
205
234
  ] = None,
206
235
  on_mouse_leave: Optional[
207
- Union[EventHandler, EventSpec, list, Callable, Var]
236
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
208
237
  ] = None,
209
238
  on_mouse_move: Optional[
210
- Union[EventHandler, EventSpec, list, Callable, Var]
239
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
211
240
  ] = None,
212
241
  on_mouse_out: Optional[
213
- Union[EventHandler, EventSpec, list, Callable, Var]
242
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
214
243
  ] = None,
215
244
  on_mouse_over: Optional[
216
- Union[EventHandler, EventSpec, list, Callable, Var]
245
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
217
246
  ] = None,
218
247
  on_mouse_up: Optional[
219
- Union[EventHandler, EventSpec, list, Callable, Var]
248
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
249
+ ] = None,
250
+ on_scroll: Optional[
251
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
220
252
  ] = None,
221
- on_scroll: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
222
253
  on_unmount: Optional[
223
- Union[EventHandler, EventSpec, list, Callable, Var]
254
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
224
255
  ] = None,
225
256
  **props,
226
257
  ) -> "SliderTrack":
@@ -255,41 +286,51 @@ class SliderRange(SliderComponent):
255
286
  id: Optional[Any] = None,
256
287
  class_name: Optional[Any] = None,
257
288
  autofocus: Optional[bool] = None,
258
- custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
259
- on_blur: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
260
- on_click: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
289
+ custom_attrs: Optional[Dict[str, Union[ImmutableVar, str]]] = None,
290
+ on_blur: Optional[
291
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
292
+ ] = None,
293
+ on_click: Optional[
294
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
295
+ ] = None,
261
296
  on_context_menu: Optional[
262
- Union[EventHandler, EventSpec, list, Callable, Var]
297
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
263
298
  ] = None,
264
299
  on_double_click: Optional[
265
- Union[EventHandler, EventSpec, list, Callable, Var]
300
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
301
+ ] = None,
302
+ on_focus: Optional[
303
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
304
+ ] = None,
305
+ on_mount: Optional[
306
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
266
307
  ] = None,
267
- on_focus: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
268
- on_mount: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
269
308
  on_mouse_down: Optional[
270
- Union[EventHandler, EventSpec, list, Callable, Var]
309
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
271
310
  ] = None,
272
311
  on_mouse_enter: Optional[
273
- Union[EventHandler, EventSpec, list, Callable, Var]
312
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
274
313
  ] = None,
275
314
  on_mouse_leave: Optional[
276
- Union[EventHandler, EventSpec, list, Callable, Var]
315
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
277
316
  ] = None,
278
317
  on_mouse_move: Optional[
279
- Union[EventHandler, EventSpec, list, Callable, Var]
318
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
280
319
  ] = None,
281
320
  on_mouse_out: Optional[
282
- Union[EventHandler, EventSpec, list, Callable, Var]
321
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
283
322
  ] = None,
284
323
  on_mouse_over: Optional[
285
- Union[EventHandler, EventSpec, list, Callable, Var]
324
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
286
325
  ] = None,
287
326
  on_mouse_up: Optional[
288
- Union[EventHandler, EventSpec, list, Callable, Var]
327
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
328
+ ] = None,
329
+ on_scroll: Optional[
330
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
289
331
  ] = None,
290
- on_scroll: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
291
332
  on_unmount: Optional[
292
- Union[EventHandler, EventSpec, list, Callable, Var]
333
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
293
334
  ] = None,
294
335
  **props,
295
336
  ) -> "SliderRange":
@@ -324,41 +365,51 @@ class SliderThumb(SliderComponent):
324
365
  id: Optional[Any] = None,
325
366
  class_name: Optional[Any] = None,
326
367
  autofocus: Optional[bool] = None,
327
- custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
328
- on_blur: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
329
- on_click: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
368
+ custom_attrs: Optional[Dict[str, Union[ImmutableVar, str]]] = None,
369
+ on_blur: Optional[
370
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
371
+ ] = None,
372
+ on_click: Optional[
373
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
374
+ ] = None,
330
375
  on_context_menu: Optional[
331
- Union[EventHandler, EventSpec, list, Callable, Var]
376
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
332
377
  ] = None,
333
378
  on_double_click: Optional[
334
- Union[EventHandler, EventSpec, list, Callable, Var]
379
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
380
+ ] = None,
381
+ on_focus: Optional[
382
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
383
+ ] = None,
384
+ on_mount: Optional[
385
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
335
386
  ] = None,
336
- on_focus: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
337
- on_mount: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
338
387
  on_mouse_down: Optional[
339
- Union[EventHandler, EventSpec, list, Callable, Var]
388
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
340
389
  ] = None,
341
390
  on_mouse_enter: Optional[
342
- Union[EventHandler, EventSpec, list, Callable, Var]
391
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
343
392
  ] = None,
344
393
  on_mouse_leave: Optional[
345
- Union[EventHandler, EventSpec, list, Callable, Var]
394
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
346
395
  ] = None,
347
396
  on_mouse_move: Optional[
348
- Union[EventHandler, EventSpec, list, Callable, Var]
397
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
349
398
  ] = None,
350
399
  on_mouse_out: Optional[
351
- Union[EventHandler, EventSpec, list, Callable, Var]
400
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
352
401
  ] = None,
353
402
  on_mouse_over: Optional[
354
- Union[EventHandler, EventSpec, list, Callable, Var]
403
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
355
404
  ] = None,
356
405
  on_mouse_up: Optional[
357
- Union[EventHandler, EventSpec, list, Callable, Var]
406
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
407
+ ] = None,
408
+ on_scroll: Optional[
409
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
358
410
  ] = None,
359
- on_scroll: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
360
411
  on_unmount: Optional[
361
- Union[EventHandler, EventSpec, list, Callable, Var]
412
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
362
413
  ] = None,
363
414
  **props,
364
415
  ) -> "SliderThumb":
@@ -7,8 +7,9 @@ from typing import Any, Dict, Literal
7
7
  from reflex.components import Component
8
8
  from reflex.components.tags import Tag
9
9
  from reflex.config import get_config
10
+ from reflex.ivars.base import ImmutableVar
10
11
  from reflex.utils.imports import ImportDict, ImportVar
11
- from reflex.vars.base import Var
12
+ from reflex.vars import Var
12
13
 
13
14
  LiteralAlign = Literal["start", "center", "end", "baseline", "stretch"]
14
15
  LiteralJustify = Literal["start", "center", "end", "between"]
@@ -235,8 +236,8 @@ class Theme(RadixThemesComponent):
235
236
  def _render(self, props: dict[str, Any] | None = None) -> Tag:
236
237
  tag = super()._render(props)
237
238
  tag.add_props(
238
- css=Var(
239
- _js_expr=f"{{...theme.styles.global[':root'], ...theme.styles.global.body}}"
239
+ css=ImmutableVar.create(
240
+ f"{{...theme.styles.global[':root'], ...theme.styles.global.body}}"
240
241
  ),
241
242
  )
242
243
  return tag
@@ -261,6 +262,26 @@ class ThemePanel(RadixThemesComponent):
261
262
  """
262
263
  return {"react": "useEffect"}
263
264
 
265
+ def add_hooks(self) -> list[str]:
266
+ """Add a hook on the ThemePanel to clear chakra-ui-color-mode.
267
+
268
+ Returns:
269
+ The hooks to render.
270
+ """
271
+ # The panel freezes the tab if the user color preference differs from the
272
+ # theme "appearance", so clear it out when theme panel is used.
273
+ return [
274
+ """
275
+ useEffect(() => {
276
+ if (typeof window !== 'undefined') {
277
+ window.onbeforeunload = () => {
278
+ localStorage.removeItem('chakra-ui-color-mode');
279
+ }
280
+ window.onbeforeunload();
281
+ }
282
+ }, [])"""
283
+ ]
284
+
264
285
 
265
286
  class RadixThemesColorModeProvider(Component):
266
287
  """Next-themes integration for radix themes components."""