reflex 0.7.1a4__py3-none-any.whl → 0.7.2a1__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 (226) hide show
  1. reflex/.templates/jinja/web/utils/context.js.jinja2 +8 -8
  2. reflex/.templates/web/components/reflex/radix_themes_color_mode_provider.js +3 -3
  3. reflex/admin.py +1 -2
  4. reflex/app.py +46 -49
  5. reflex/app_mixins/lifespan.py +2 -2
  6. reflex/app_mixins/middleware.py +1 -2
  7. reflex/assets.py +1 -2
  8. reflex/base.py +2 -2
  9. reflex/compiler/compiler.py +51 -16
  10. reflex/compiler/utils.py +4 -13
  11. reflex/components/base/app_wrap.pyi +7 -7
  12. reflex/components/base/bare.py +3 -3
  13. reflex/components/base/body.pyi +7 -7
  14. reflex/components/base/document.py +1 -3
  15. reflex/components/base/document.pyi +32 -32
  16. reflex/components/base/error_boundary.py +2 -4
  17. reflex/components/base/error_boundary.pyi +11 -13
  18. reflex/components/base/fragment.pyi +7 -7
  19. reflex/components/base/head.pyi +13 -13
  20. reflex/components/base/link.pyi +22 -22
  21. reflex/components/base/meta.py +5 -7
  22. reflex/components/base/meta.pyi +40 -40
  23. reflex/components/base/script.pyi +11 -14
  24. reflex/components/base/strict_mode.pyi +7 -7
  25. reflex/components/component.py +188 -113
  26. reflex/components/core/auto_scroll.py +8 -1
  27. reflex/components/core/auto_scroll.pyi +183 -210
  28. reflex/components/core/banner.py +2 -4
  29. reflex/components/core/banner.pyi +390 -444
  30. reflex/components/core/breakpoints.py +5 -5
  31. reflex/components/core/client_side_routing.pyi +14 -14
  32. reflex/components/core/clipboard.py +4 -4
  33. reflex/components/core/clipboard.pyi +12 -14
  34. reflex/components/core/cond.py +17 -25
  35. reflex/components/core/debounce.py +3 -3
  36. reflex/components/core/debounce.pyi +14 -14
  37. reflex/components/core/foreach.py +7 -2
  38. reflex/components/core/html.py +1 -3
  39. reflex/components/core/html.pyi +184 -213
  40. reflex/components/core/match.py +15 -19
  41. reflex/components/core/sticky.pyi +930 -1078
  42. reflex/components/core/upload.py +4 -4
  43. reflex/components/core/upload.pyi +62 -62
  44. reflex/components/datadisplay/code.py +6 -6
  45. reflex/components/datadisplay/code.pyi +1159 -1165
  46. reflex/components/datadisplay/dataeditor.py +49 -49
  47. reflex/components/datadisplay/dataeditor.pyi +95 -123
  48. reflex/components/datadisplay/logo.py +1 -3
  49. reflex/components/datadisplay/shiki_code_block.py +8 -10
  50. reflex/components/datadisplay/shiki_code_block.pyi +1678 -1720
  51. reflex/components/el/element.pyi +7 -7
  52. reflex/components/el/elements/base.pyi +183 -210
  53. reflex/components/el/elements/forms.py +23 -23
  54. reflex/components/el/elements/forms.pyi +2571 -2933
  55. reflex/components/el/elements/inline.py +4 -4
  56. reflex/components/el/elements/inline.pyi +5191 -5953
  57. reflex/components/el/elements/media.py +47 -47
  58. reflex/components/el/elements/media.pyi +4802 -5500
  59. reflex/components/el/elements/metadata.py +1 -3
  60. reflex/components/el/elements/metadata.pyi +782 -896
  61. reflex/components/el/elements/other.pyi +1278 -1467
  62. reflex/components/el/elements/scripts.pyi +580 -667
  63. reflex/components/el/elements/sectioning.pyi +2761 -3166
  64. reflex/components/el/elements/tables.pyi +1840 -2119
  65. reflex/components/el/elements/typography.pyi +2772 -3179
  66. reflex/components/gridjs/datatable.py +7 -7
  67. reflex/components/gridjs/datatable.pyi +19 -19
  68. reflex/components/lucide/icon.pyi +21 -21
  69. reflex/components/markdown/markdown.py +2 -2
  70. reflex/components/markdown/markdown.pyi +9 -9
  71. reflex/components/moment/moment.py +11 -12
  72. reflex/components/moment/moment.pyi +44 -47
  73. reflex/components/next/base.pyi +7 -7
  74. reflex/components/next/image.py +3 -3
  75. reflex/components/next/image.pyi +19 -21
  76. reflex/components/next/link.pyi +9 -9
  77. reflex/components/next/video.py +1 -3
  78. reflex/components/next/video.pyi +9 -9
  79. reflex/components/plotly/plotly.py +22 -45
  80. reflex/components/plotly/plotly.pyi +164 -164
  81. reflex/components/radix/primitives/accordion.py +14 -14
  82. reflex/components/radix/primitives/accordion.pyi +439 -487
  83. reflex/components/radix/primitives/base.py +1 -3
  84. reflex/components/radix/primitives/base.pyi +15 -15
  85. reflex/components/radix/primitives/drawer.py +3 -3
  86. reflex/components/radix/primitives/drawer.pyi +110 -116
  87. reflex/components/radix/primitives/form.py +1 -1
  88. reflex/components/radix/primitives/form.pyi +668 -752
  89. reflex/components/radix/primitives/progress.py +6 -6
  90. reflex/components/radix/primitives/progress.pyi +225 -243
  91. reflex/components/radix/primitives/slider.py +6 -6
  92. reflex/components/radix/primitives/slider.pyi +52 -55
  93. reflex/components/radix/themes/base.py +3 -6
  94. reflex/components/radix/themes/base.pyi +197 -303
  95. reflex/components/radix/themes/color_mode.py +5 -5
  96. reflex/components/radix/themes/color_mode.pyi +366 -436
  97. reflex/components/radix/themes/components/alert_dialog.pyi +229 -262
  98. reflex/components/radix/themes/components/aspect_ratio.py +1 -3
  99. reflex/components/radix/themes/components/aspect_ratio.pyi +8 -8
  100. reflex/components/radix/themes/components/avatar.pyi +79 -94
  101. reflex/components/radix/themes/components/badge.pyi +252 -295
  102. reflex/components/radix/themes/components/button.pyi +269 -314
  103. reflex/components/radix/themes/components/callout.py +2 -2
  104. reflex/components/radix/themes/components/callout.pyi +1116 -1290
  105. reflex/components/radix/themes/components/card.pyi +194 -229
  106. reflex/components/radix/themes/components/checkbox.pyi +243 -278
  107. reflex/components/radix/themes/components/checkbox_cards.py +3 -7
  108. reflex/components/radix/themes/components/checkbox_cards.pyi +101 -135
  109. reflex/components/radix/themes/components/checkbox_group.py +2 -2
  110. reflex/components/radix/themes/components/checkbox_group.pyi +83 -96
  111. reflex/components/radix/themes/components/context_menu.py +18 -15
  112. reflex/components/radix/themes/components/context_menu.pyi +408 -458
  113. reflex/components/radix/themes/components/data_list.pyi +122 -147
  114. reflex/components/radix/themes/components/dialog.pyi +231 -264
  115. reflex/components/radix/themes/components/dropdown_menu.py +16 -13
  116. reflex/components/radix/themes/components/dropdown_menu.pyi +223 -246
  117. reflex/components/radix/themes/components/hover_card.py +2 -2
  118. reflex/components/radix/themes/components/hover_card.pyi +237 -282
  119. reflex/components/radix/themes/components/icon_button.pyi +269 -314
  120. reflex/components/radix/themes/components/inset.py +8 -8
  121. reflex/components/radix/themes/components/inset.pyi +232 -292
  122. reflex/components/radix/themes/components/popover.py +2 -2
  123. reflex/components/radix/themes/components/popover.pyi +229 -271
  124. reflex/components/radix/themes/components/progress.pyi +80 -96
  125. reflex/components/radix/themes/components/radio.pyi +73 -86
  126. reflex/components/radix/themes/components/radio_cards.py +4 -8
  127. reflex/components/radix/themes/components/radio_cards.pyi +117 -154
  128. reflex/components/radix/themes/components/radio_group.py +3 -3
  129. reflex/components/radix/themes/components/radio_group.pyi +250 -291
  130. reflex/components/radix/themes/components/scroll_area.pyi +14 -20
  131. reflex/components/radix/themes/components/segmented_control.py +6 -6
  132. reflex/components/radix/themes/components/segmented_control.pyi +89 -108
  133. reflex/components/radix/themes/components/select.py +7 -7
  134. reflex/components/radix/themes/components/select.pyi +376 -444
  135. reflex/components/radix/themes/components/separator.pyi +79 -93
  136. reflex/components/radix/themes/components/skeleton.pyi +32 -26
  137. reflex/components/radix/themes/components/slider.py +8 -8
  138. reflex/components/radix/themes/components/slider.pyi +99 -122
  139. reflex/components/radix/themes/components/spinner.pyi +12 -19
  140. reflex/components/radix/themes/components/switch.pyi +84 -99
  141. reflex/components/radix/themes/components/table.py +9 -9
  142. reflex/components/radix/themes/components/table.pyi +1440 -1794
  143. reflex/components/radix/themes/components/tabs.py +4 -4
  144. reflex/components/radix/themes/components/tabs.pyi +120 -132
  145. reflex/components/radix/themes/components/text_area.pyi +281 -331
  146. reflex/components/radix/themes/components/text_field.py +2 -2
  147. reflex/components/radix/themes/components/text_field.pyi +639 -734
  148. reflex/components/radix/themes/components/tooltip.py +6 -6
  149. reflex/components/radix/themes/components/tooltip.pyi +34 -43
  150. reflex/components/radix/themes/layout/base.pyi +85 -182
  151. reflex/components/radix/themes/layout/box.pyi +183 -210
  152. reflex/components/radix/themes/layout/center.pyi +225 -286
  153. reflex/components/radix/themes/layout/container.pyi +191 -224
  154. reflex/components/radix/themes/layout/flex.py +2 -2
  155. reflex/components/radix/themes/layout/flex.pyi +225 -286
  156. reflex/components/radix/themes/layout/grid.py +2 -2
  157. reflex/components/radix/themes/layout/grid.pyi +245 -315
  158. reflex/components/radix/themes/layout/list.py +2 -2
  159. reflex/components/radix/themes/layout/list.pyi +712 -815
  160. reflex/components/radix/themes/layout/section.pyi +187 -221
  161. reflex/components/radix/themes/layout/spacer.pyi +225 -286
  162. reflex/components/radix/themes/layout/stack.pyi +625 -768
  163. reflex/components/radix/themes/typography/blockquote.pyi +257 -299
  164. reflex/components/radix/themes/typography/code.pyi +259 -304
  165. reflex/components/radix/themes/typography/heading.pyi +272 -324
  166. reflex/components/radix/themes/typography/link.pyi +302 -358
  167. reflex/components/radix/themes/typography/text.pyi +1669 -1945
  168. reflex/components/react_player/audio.pyi +20 -22
  169. reflex/components/react_player/react_player.pyi +19 -19
  170. reflex/components/react_player/video.pyi +20 -22
  171. reflex/components/recharts/cartesian.py +100 -97
  172. reflex/components/recharts/cartesian.pyi +891 -1007
  173. reflex/components/recharts/charts.py +42 -42
  174. reflex/components/recharts/charts.pyi +212 -249
  175. reflex/components/recharts/general.py +22 -21
  176. reflex/components/recharts/general.pyi +198 -223
  177. reflex/components/recharts/polar.py +42 -45
  178. reflex/components/recharts/polar.pyi +254 -288
  179. reflex/components/recharts/recharts.pyi +13 -13
  180. reflex/components/sonner/toast.py +20 -20
  181. reflex/components/sonner/toast.pyi +58 -61
  182. reflex/components/suneditor/editor.py +9 -9
  183. reflex/components/suneditor/editor.pyi +78 -83
  184. reflex/components/tags/cond_tag.py +2 -2
  185. reflex/components/tags/iter_tag.py +10 -14
  186. reflex/components/tags/match_tag.py +2 -2
  187. reflex/components/tags/tag.py +10 -10
  188. reflex/config.py +36 -35
  189. reflex/constants/__init__.py +56 -53
  190. reflex/custom_components/custom_components.py +6 -7
  191. reflex/event.py +38 -42
  192. reflex/experimental/client_state.py +2 -4
  193. reflex/experimental/layout.py +2 -2
  194. reflex/experimental/layout.pyi +579 -663
  195. reflex/istate/data.py +4 -5
  196. reflex/middleware/hydrate_middleware.py +2 -2
  197. reflex/middleware/middleware.py +2 -2
  198. reflex/model.py +3 -5
  199. reflex/page.py +2 -2
  200. reflex/reflex.py +9 -10
  201. reflex/state.py +77 -49
  202. reflex/style.py +9 -3
  203. reflex/testing.py +21 -24
  204. reflex/utils/console.py +1 -1
  205. reflex/utils/decorator.py +26 -1
  206. reflex/utils/exec.py +6 -11
  207. reflex/utils/export.py +2 -3
  208. reflex/utils/format.py +4 -4
  209. reflex/utils/imports.py +12 -12
  210. reflex/utils/prerequisites.py +35 -84
  211. reflex/utils/processes.py +5 -5
  212. reflex/utils/pyi_generator.py +33 -22
  213. reflex/utils/serializers.py +60 -15
  214. reflex/utils/types.py +237 -56
  215. reflex/vars/base.py +122 -72
  216. reflex/vars/datetime.py +2 -2
  217. reflex/vars/function.py +52 -55
  218. reflex/vars/number.py +59 -5
  219. reflex/vars/object.py +57 -26
  220. reflex/vars/sequence.py +983 -958
  221. {reflex-0.7.1a4.dist-info → reflex-0.7.2a1.dist-info}/METADATA +3 -6
  222. reflex-0.7.2a1.dist-info/RECORD +405 -0
  223. {reflex-0.7.1a4.dist-info → reflex-0.7.2a1.dist-info}/WHEEL +1 -1
  224. reflex-0.7.1a4.dist-info/RECORD +0 -405
  225. {reflex-0.7.1a4.dist-info → reflex-0.7.2a1.dist-info}/LICENSE +0 -0
  226. {reflex-0.7.1a4.dist-info → reflex-0.7.2a1.dist-info}/entry_points.txt +0 -0
@@ -3,7 +3,7 @@
3
3
  from __future__ import annotations
4
4
 
5
5
  from pathlib import Path
6
- from typing import Any, Callable, ClassVar, Dict, List, Optional, Tuple
6
+ from typing import Any, Callable, ClassVar, Sequence
7
7
 
8
8
  from reflex.components.base.fragment import Fragment
9
9
  from reflex.components.component import (
@@ -86,7 +86,7 @@ def selected_files(id_: str = DEFAULT_UPLOAD_ID) -> Var:
86
86
  id_var = LiteralStringVar.create(id_)
87
87
  return Var(
88
88
  _js_expr=f"(filesById[{id_var!s}] ? filesById[{id_var!s}].map((f) => (f.path || f.name)) : [])",
89
- _var_type=List[str],
89
+ _var_type=list[str],
90
90
  _var_data=VarData.merge(
91
91
  upload_files_context_var_data, id_var._get_all_var_data()
92
92
  ),
@@ -161,7 +161,7 @@ def get_upload_url(file_path: str | Var[str]) -> Var[str]:
161
161
  return Var.create(f"{uploaded_files_url_prefix}/{file_path}")
162
162
 
163
163
 
164
- def _on_drop_spec(files: Var) -> Tuple[Var[Any]]:
164
+ def _on_drop_spec(files: Var) -> tuple[Var[Any]]:
165
165
  """Args spec for the on_drop event trigger.
166
166
 
167
167
  Args:
@@ -197,7 +197,7 @@ class Upload(MemoizationLeaf):
197
197
  # The list of accepted file types. This should be a dictionary of MIME types as keys and array of file formats as
198
198
  # values.
199
199
  # supported MIME types: https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types
200
- accept: Var[Optional[Dict[str, List]]]
200
+ accept: Var[dict[str, Sequence] | None]
201
201
 
202
202
  # Whether the dropzone is disabled.
203
203
  disabled: Var[bool]
@@ -4,7 +4,7 @@
4
4
  # This file was generated by `reflex/utils/pyi_generator.py`!
5
5
  # ------------------------------------------------------
6
6
  from pathlib import Path
7
- from typing import Any, ClassVar, Dict, List, Optional, Union, overload
7
+ from typing import Any, ClassVar, Optional, Sequence, overload
8
8
 
9
9
  from reflex.components.base.fragment import Fragment
10
10
  from reflex.components.component import Component, ComponentNamespace, MemoizationLeaf
@@ -43,12 +43,12 @@ class UploadFilesProvider(Component):
43
43
  def create( # type: ignore
44
44
  cls,
45
45
  *children,
46
- style: Optional[Style] = None,
47
- key: Optional[Any] = None,
48
- id: Optional[Any] = None,
49
- class_name: Optional[Any] = None,
50
- autofocus: Optional[bool] = None,
51
- custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None,
46
+ style: Style | None = None,
47
+ key: Any | None = None,
48
+ id: Any | None = None,
49
+ class_name: Any | None = None,
50
+ autofocus: bool | None = None,
51
+ custom_attrs: dict[str, Var | Any] | None = None,
52
52
  on_blur: Optional[EventType[()]] = None,
53
53
  on_click: Optional[EventType[()]] = None,
54
54
  on_context_menu: Optional[EventType[()]] = None,
@@ -89,17 +89,17 @@ class GhostUpload(Fragment):
89
89
  def create( # type: ignore
90
90
  cls,
91
91
  *children,
92
- style: Optional[Style] = None,
93
- key: Optional[Any] = None,
94
- id: Optional[Any] = None,
95
- class_name: Optional[Any] = None,
96
- autofocus: Optional[bool] = None,
97
- custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None,
92
+ style: Style | None = None,
93
+ key: Any | None = None,
94
+ id: Any | None = None,
95
+ class_name: Any | None = None,
96
+ autofocus: bool | None = None,
97
+ custom_attrs: dict[str, Var | Any] | None = None,
98
98
  on_blur: Optional[EventType[()]] = None,
99
99
  on_click: Optional[EventType[()]] = None,
100
100
  on_context_menu: Optional[EventType[()]] = None,
101
101
  on_double_click: Optional[EventType[()]] = None,
102
- on_drop: Optional[Union[EventType[()], EventType[Any]]] = None,
102
+ on_drop: Optional[EventType[()] | EventType[Any]] = None,
103
103
  on_focus: Optional[EventType[()]] = None,
104
104
  on_mount: Optional[EventType[()]] = None,
105
105
  on_mouse_down: Optional[EventType[()]] = None,
@@ -139,26 +139,26 @@ class Upload(MemoizationLeaf):
139
139
  def create( # type: ignore
140
140
  cls,
141
141
  *children,
142
- accept: Optional[Union[Dict[str, List], Var[Optional[Dict[str, List]]]]] = None,
143
- disabled: Optional[Union[Var[bool], bool]] = None,
144
- max_files: Optional[Union[Var[int], int]] = None,
145
- max_size: Optional[Union[Var[int], int]] = None,
146
- min_size: Optional[Union[Var[int], int]] = None,
147
- multiple: Optional[Union[Var[bool], bool]] = None,
148
- no_click: Optional[Union[Var[bool], bool]] = None,
149
- no_drag: Optional[Union[Var[bool], bool]] = None,
150
- no_keyboard: Optional[Union[Var[bool], bool]] = None,
151
- style: Optional[Style] = None,
152
- key: Optional[Any] = None,
153
- id: Optional[Any] = None,
154
- class_name: Optional[Any] = None,
155
- autofocus: Optional[bool] = None,
156
- custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None,
142
+ accept: Var[dict[str, Sequence] | None] | dict[str, Sequence] | None = None,
143
+ disabled: Var[bool] | bool | None = None,
144
+ max_files: Var[int] | int | None = None,
145
+ max_size: Var[int] | int | None = None,
146
+ min_size: Var[int] | int | None = None,
147
+ multiple: Var[bool] | bool | None = None,
148
+ no_click: Var[bool] | bool | None = None,
149
+ no_drag: Var[bool] | bool | None = None,
150
+ no_keyboard: Var[bool] | bool | None = None,
151
+ style: Style | None = None,
152
+ key: Any | None = None,
153
+ id: Any | None = None,
154
+ class_name: Any | None = None,
155
+ autofocus: bool | None = None,
156
+ custom_attrs: dict[str, Var | Any] | None = None,
157
157
  on_blur: Optional[EventType[()]] = None,
158
158
  on_click: Optional[EventType[()]] = None,
159
159
  on_context_menu: Optional[EventType[()]] = None,
160
160
  on_double_click: Optional[EventType[()]] = None,
161
- on_drop: Optional[Union[EventType[()], EventType[Any]]] = None,
161
+ on_drop: Optional[EventType[()] | EventType[Any]] = None,
162
162
  on_focus: Optional[EventType[()]] = None,
163
163
  on_mount: Optional[EventType[()]] = None,
164
164
  on_mouse_down: Optional[EventType[()]] = None,
@@ -205,26 +205,26 @@ class StyledUpload(Upload):
205
205
  def create( # type: ignore
206
206
  cls,
207
207
  *children,
208
- accept: Optional[Union[Dict[str, List], Var[Optional[Dict[str, List]]]]] = None,
209
- disabled: Optional[Union[Var[bool], bool]] = None,
210
- max_files: Optional[Union[Var[int], int]] = None,
211
- max_size: Optional[Union[Var[int], int]] = None,
212
- min_size: Optional[Union[Var[int], int]] = None,
213
- multiple: Optional[Union[Var[bool], bool]] = None,
214
- no_click: Optional[Union[Var[bool], bool]] = None,
215
- no_drag: Optional[Union[Var[bool], bool]] = None,
216
- no_keyboard: Optional[Union[Var[bool], bool]] = None,
217
- style: Optional[Style] = None,
218
- key: Optional[Any] = None,
219
- id: Optional[Any] = None,
220
- class_name: Optional[Any] = None,
221
- autofocus: Optional[bool] = None,
222
- custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None,
208
+ accept: Var[dict[str, Sequence] | None] | dict[str, Sequence] | None = None,
209
+ disabled: Var[bool] | bool | None = None,
210
+ max_files: Var[int] | int | None = None,
211
+ max_size: Var[int] | int | None = None,
212
+ min_size: Var[int] | int | None = None,
213
+ multiple: Var[bool] | bool | None = None,
214
+ no_click: Var[bool] | bool | None = None,
215
+ no_drag: Var[bool] | bool | None = None,
216
+ no_keyboard: Var[bool] | bool | None = None,
217
+ style: Style | None = None,
218
+ key: Any | None = None,
219
+ id: Any | None = None,
220
+ class_name: Any | None = None,
221
+ autofocus: bool | None = None,
222
+ custom_attrs: dict[str, Var | Any] | None = None,
223
223
  on_blur: Optional[EventType[()]] = None,
224
224
  on_click: Optional[EventType[()]] = None,
225
225
  on_context_menu: Optional[EventType[()]] = None,
226
226
  on_double_click: Optional[EventType[()]] = None,
227
- on_drop: Optional[Union[EventType[()], EventType[Any]]] = None,
227
+ on_drop: Optional[EventType[()] | EventType[Any]] = None,
228
228
  on_focus: Optional[EventType[()]] = None,
229
229
  on_mount: Optional[EventType[()]] = None,
230
230
  on_mouse_down: Optional[EventType[()]] = None,
@@ -271,26 +271,26 @@ class UploadNamespace(ComponentNamespace):
271
271
  @staticmethod
272
272
  def __call__(
273
273
  *children,
274
- accept: Optional[Union[Dict[str, List], Var[Optional[Dict[str, List]]]]] = None,
275
- disabled: Optional[Union[Var[bool], bool]] = None,
276
- max_files: Optional[Union[Var[int], int]] = None,
277
- max_size: Optional[Union[Var[int], int]] = None,
278
- min_size: Optional[Union[Var[int], int]] = None,
279
- multiple: Optional[Union[Var[bool], bool]] = None,
280
- no_click: Optional[Union[Var[bool], bool]] = None,
281
- no_drag: Optional[Union[Var[bool], bool]] = None,
282
- no_keyboard: Optional[Union[Var[bool], bool]] = None,
283
- style: Optional[Style] = None,
284
- key: Optional[Any] = None,
285
- id: Optional[Any] = None,
286
- class_name: Optional[Any] = None,
287
- autofocus: Optional[bool] = None,
288
- custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None,
274
+ accept: Var[dict[str, Sequence] | None] | dict[str, Sequence] | None = None,
275
+ disabled: Var[bool] | bool | None = None,
276
+ max_files: Var[int] | int | None = None,
277
+ max_size: Var[int] | int | None = None,
278
+ min_size: Var[int] | int | None = None,
279
+ multiple: Var[bool] | bool | None = None,
280
+ no_click: Var[bool] | bool | None = None,
281
+ no_drag: Var[bool] | bool | None = None,
282
+ no_keyboard: Var[bool] | bool | None = None,
283
+ style: Style | None = None,
284
+ key: Any | None = None,
285
+ id: Any | None = None,
286
+ class_name: Any | None = None,
287
+ autofocus: bool | None = None,
288
+ custom_attrs: dict[str, Var | Any] | None = None,
289
289
  on_blur: Optional[EventType[()]] = None,
290
290
  on_click: Optional[EventType[()]] = None,
291
291
  on_context_menu: Optional[EventType[()]] = None,
292
292
  on_double_click: Optional[EventType[()]] = None,
293
- on_drop: Optional[Union[EventType[()], EventType[Any]]] = None,
293
+ on_drop: Optional[EventType[()] | EventType[Any]] = None,
294
294
  on_focus: Optional[EventType[()]] = None,
295
295
  on_mount: Optional[EventType[()]] = None,
296
296
  on_mouse_down: Optional[EventType[()]] = None,
@@ -4,7 +4,7 @@ from __future__ import annotations
4
4
 
5
5
  import dataclasses
6
6
  import typing
7
- from typing import ClassVar, Dict, Literal, Optional, Union
7
+ from typing import ClassVar, Literal
8
8
 
9
9
  from reflex.components.component import Component, ComponentNamespace
10
10
  from reflex.components.core.cond import color_mode_cond
@@ -390,7 +390,7 @@ class CodeBlock(Component, MarkdownComponentMap):
390
390
  alias = "SyntaxHighlighter"
391
391
 
392
392
  # The theme to use ("light" or "dark").
393
- theme: Var[Union[Theme, str]] = Theme.one_light
393
+ theme: Var[Theme | str] = Theme.one_light
394
394
 
395
395
  # The language to use.
396
396
  language: Var[LiteralCodeLanguage] = Var.create("python")
@@ -408,16 +408,16 @@ class CodeBlock(Component, MarkdownComponentMap):
408
408
  wrap_long_lines: Var[bool]
409
409
 
410
410
  # A custom style for the code block.
411
- custom_style: Dict[str, Union[str, Var, Color]] = {}
411
+ custom_style: dict[str, str | Var | Color] = {}
412
412
 
413
413
  # Props passed down to the code tag.
414
- code_tag_props: Var[Dict[str, str]]
414
+ code_tag_props: Var[dict[str, str]]
415
415
 
416
416
  # Whether a copy button should appear.
417
- can_copy: Optional[bool] = False
417
+ can_copy: bool | None = False
418
418
 
419
419
  # A custom copy button to override the default one.
420
- copy_button: Optional[Union[bool, Component]] = None
420
+ copy_button: bool | Component | None = None
421
421
 
422
422
  @classmethod
423
423
  def create(