reflex 0.7.1a3__py3-none-any.whl → 0.7.2__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 (227) 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/.templates/web/utils/state.js +18 -18
  4. reflex/admin.py +1 -2
  5. reflex/app.py +53 -50
  6. reflex/app_mixins/lifespan.py +2 -2
  7. reflex/app_mixins/middleware.py +1 -2
  8. reflex/assets.py +1 -2
  9. reflex/base.py +2 -2
  10. reflex/compiler/compiler.py +51 -16
  11. reflex/compiler/utils.py +4 -13
  12. reflex/components/base/app_wrap.pyi +7 -7
  13. reflex/components/base/bare.py +3 -3
  14. reflex/components/base/body.pyi +7 -7
  15. reflex/components/base/document.py +1 -3
  16. reflex/components/base/document.pyi +32 -32
  17. reflex/components/base/error_boundary.py +2 -4
  18. reflex/components/base/error_boundary.pyi +11 -13
  19. reflex/components/base/fragment.pyi +7 -7
  20. reflex/components/base/head.pyi +13 -13
  21. reflex/components/base/link.pyi +22 -22
  22. reflex/components/base/meta.py +5 -7
  23. reflex/components/base/meta.pyi +40 -40
  24. reflex/components/base/script.pyi +11 -14
  25. reflex/components/base/strict_mode.pyi +7 -7
  26. reflex/components/component.py +188 -113
  27. reflex/components/core/auto_scroll.py +8 -1
  28. reflex/components/core/auto_scroll.pyi +183 -210
  29. reflex/components/core/banner.py +2 -4
  30. reflex/components/core/banner.pyi +390 -444
  31. reflex/components/core/breakpoints.py +5 -5
  32. reflex/components/core/client_side_routing.pyi +14 -14
  33. reflex/components/core/clipboard.py +4 -4
  34. reflex/components/core/clipboard.pyi +12 -14
  35. reflex/components/core/cond.py +17 -25
  36. reflex/components/core/debounce.py +3 -3
  37. reflex/components/core/debounce.pyi +14 -14
  38. reflex/components/core/foreach.py +7 -2
  39. reflex/components/core/html.py +1 -3
  40. reflex/components/core/html.pyi +184 -213
  41. reflex/components/core/match.py +15 -19
  42. reflex/components/core/sticky.pyi +930 -1078
  43. reflex/components/core/upload.py +4 -4
  44. reflex/components/core/upload.pyi +62 -62
  45. reflex/components/datadisplay/code.py +6 -6
  46. reflex/components/datadisplay/code.pyi +1159 -1165
  47. reflex/components/datadisplay/dataeditor.py +49 -49
  48. reflex/components/datadisplay/dataeditor.pyi +95 -123
  49. reflex/components/datadisplay/logo.py +1 -3
  50. reflex/components/datadisplay/shiki_code_block.py +8 -10
  51. reflex/components/datadisplay/shiki_code_block.pyi +1678 -1720
  52. reflex/components/el/element.pyi +7 -7
  53. reflex/components/el/elements/base.pyi +183 -210
  54. reflex/components/el/elements/forms.py +24 -24
  55. reflex/components/el/elements/forms.pyi +2572 -2934
  56. reflex/components/el/elements/inline.py +4 -4
  57. reflex/components/el/elements/inline.pyi +5191 -5953
  58. reflex/components/el/elements/media.py +47 -47
  59. reflex/components/el/elements/media.pyi +4802 -5500
  60. reflex/components/el/elements/metadata.py +1 -3
  61. reflex/components/el/elements/metadata.pyi +782 -896
  62. reflex/components/el/elements/other.pyi +1278 -1467
  63. reflex/components/el/elements/scripts.pyi +580 -667
  64. reflex/components/el/elements/sectioning.pyi +2761 -3166
  65. reflex/components/el/elements/tables.pyi +1840 -2119
  66. reflex/components/el/elements/typography.pyi +2772 -3179
  67. reflex/components/gridjs/datatable.py +7 -7
  68. reflex/components/gridjs/datatable.pyi +19 -19
  69. reflex/components/lucide/icon.pyi +21 -21
  70. reflex/components/markdown/markdown.py +2 -2
  71. reflex/components/markdown/markdown.pyi +9 -9
  72. reflex/components/moment/moment.py +11 -12
  73. reflex/components/moment/moment.pyi +44 -47
  74. reflex/components/next/base.pyi +7 -7
  75. reflex/components/next/image.py +3 -3
  76. reflex/components/next/image.pyi +19 -21
  77. reflex/components/next/link.pyi +9 -9
  78. reflex/components/next/video.py +1 -3
  79. reflex/components/next/video.pyi +9 -9
  80. reflex/components/plotly/plotly.py +22 -45
  81. reflex/components/plotly/plotly.pyi +164 -164
  82. reflex/components/radix/primitives/accordion.py +14 -14
  83. reflex/components/radix/primitives/accordion.pyi +439 -487
  84. reflex/components/radix/primitives/base.py +1 -3
  85. reflex/components/radix/primitives/base.pyi +15 -15
  86. reflex/components/radix/primitives/drawer.py +3 -3
  87. reflex/components/radix/primitives/drawer.pyi +110 -116
  88. reflex/components/radix/primitives/form.py +1 -1
  89. reflex/components/radix/primitives/form.pyi +668 -752
  90. reflex/components/radix/primitives/progress.py +6 -6
  91. reflex/components/radix/primitives/progress.pyi +225 -243
  92. reflex/components/radix/primitives/slider.py +6 -6
  93. reflex/components/radix/primitives/slider.pyi +52 -55
  94. reflex/components/radix/themes/base.py +3 -6
  95. reflex/components/radix/themes/base.pyi +197 -303
  96. reflex/components/radix/themes/color_mode.py +5 -5
  97. reflex/components/radix/themes/color_mode.pyi +366 -436
  98. reflex/components/radix/themes/components/alert_dialog.pyi +229 -262
  99. reflex/components/radix/themes/components/aspect_ratio.py +1 -3
  100. reflex/components/radix/themes/components/aspect_ratio.pyi +8 -8
  101. reflex/components/radix/themes/components/avatar.pyi +79 -94
  102. reflex/components/radix/themes/components/badge.pyi +252 -295
  103. reflex/components/radix/themes/components/button.pyi +269 -314
  104. reflex/components/radix/themes/components/callout.py +2 -2
  105. reflex/components/radix/themes/components/callout.pyi +1116 -1290
  106. reflex/components/radix/themes/components/card.pyi +194 -229
  107. reflex/components/radix/themes/components/checkbox.pyi +243 -278
  108. reflex/components/radix/themes/components/checkbox_cards.py +3 -7
  109. reflex/components/radix/themes/components/checkbox_cards.pyi +101 -135
  110. reflex/components/radix/themes/components/checkbox_group.py +2 -2
  111. reflex/components/radix/themes/components/checkbox_group.pyi +83 -96
  112. reflex/components/radix/themes/components/context_menu.py +18 -15
  113. reflex/components/radix/themes/components/context_menu.pyi +408 -458
  114. reflex/components/radix/themes/components/data_list.pyi +122 -147
  115. reflex/components/radix/themes/components/dialog.pyi +231 -264
  116. reflex/components/radix/themes/components/dropdown_menu.py +16 -13
  117. reflex/components/radix/themes/components/dropdown_menu.pyi +223 -246
  118. reflex/components/radix/themes/components/hover_card.py +2 -2
  119. reflex/components/radix/themes/components/hover_card.pyi +237 -282
  120. reflex/components/radix/themes/components/icon_button.pyi +269 -314
  121. reflex/components/radix/themes/components/inset.py +8 -8
  122. reflex/components/radix/themes/components/inset.pyi +232 -292
  123. reflex/components/radix/themes/components/popover.py +2 -2
  124. reflex/components/radix/themes/components/popover.pyi +229 -271
  125. reflex/components/radix/themes/components/progress.pyi +80 -96
  126. reflex/components/radix/themes/components/radio.pyi +73 -86
  127. reflex/components/radix/themes/components/radio_cards.py +4 -8
  128. reflex/components/radix/themes/components/radio_cards.pyi +117 -154
  129. reflex/components/radix/themes/components/radio_group.py +3 -3
  130. reflex/components/radix/themes/components/radio_group.pyi +250 -291
  131. reflex/components/radix/themes/components/scroll_area.pyi +14 -20
  132. reflex/components/radix/themes/components/segmented_control.py +6 -6
  133. reflex/components/radix/themes/components/segmented_control.pyi +89 -108
  134. reflex/components/radix/themes/components/select.py +7 -7
  135. reflex/components/radix/themes/components/select.pyi +376 -444
  136. reflex/components/radix/themes/components/separator.pyi +79 -93
  137. reflex/components/radix/themes/components/skeleton.pyi +32 -26
  138. reflex/components/radix/themes/components/slider.py +8 -8
  139. reflex/components/radix/themes/components/slider.pyi +99 -122
  140. reflex/components/radix/themes/components/spinner.pyi +12 -19
  141. reflex/components/radix/themes/components/switch.pyi +84 -99
  142. reflex/components/radix/themes/components/table.py +9 -9
  143. reflex/components/radix/themes/components/table.pyi +1440 -1794
  144. reflex/components/radix/themes/components/tabs.py +4 -4
  145. reflex/components/radix/themes/components/tabs.pyi +120 -132
  146. reflex/components/radix/themes/components/text_area.pyi +281 -331
  147. reflex/components/radix/themes/components/text_field.py +2 -2
  148. reflex/components/radix/themes/components/text_field.pyi +639 -734
  149. reflex/components/radix/themes/components/tooltip.py +6 -6
  150. reflex/components/radix/themes/components/tooltip.pyi +34 -43
  151. reflex/components/radix/themes/layout/base.pyi +85 -182
  152. reflex/components/radix/themes/layout/box.pyi +183 -210
  153. reflex/components/radix/themes/layout/center.pyi +225 -286
  154. reflex/components/radix/themes/layout/container.pyi +191 -224
  155. reflex/components/radix/themes/layout/flex.py +2 -2
  156. reflex/components/radix/themes/layout/flex.pyi +225 -286
  157. reflex/components/radix/themes/layout/grid.py +2 -2
  158. reflex/components/radix/themes/layout/grid.pyi +245 -315
  159. reflex/components/radix/themes/layout/list.py +2 -2
  160. reflex/components/radix/themes/layout/list.pyi +712 -815
  161. reflex/components/radix/themes/layout/section.pyi +187 -221
  162. reflex/components/radix/themes/layout/spacer.pyi +225 -286
  163. reflex/components/radix/themes/layout/stack.pyi +625 -768
  164. reflex/components/radix/themes/typography/blockquote.pyi +257 -299
  165. reflex/components/radix/themes/typography/code.pyi +259 -304
  166. reflex/components/radix/themes/typography/heading.pyi +272 -324
  167. reflex/components/radix/themes/typography/link.pyi +302 -358
  168. reflex/components/radix/themes/typography/text.pyi +1669 -1945
  169. reflex/components/react_player/audio.pyi +20 -22
  170. reflex/components/react_player/react_player.pyi +19 -19
  171. reflex/components/react_player/video.pyi +20 -22
  172. reflex/components/recharts/cartesian.py +100 -97
  173. reflex/components/recharts/cartesian.pyi +891 -1007
  174. reflex/components/recharts/charts.py +42 -42
  175. reflex/components/recharts/charts.pyi +212 -249
  176. reflex/components/recharts/general.py +22 -21
  177. reflex/components/recharts/general.pyi +198 -223
  178. reflex/components/recharts/polar.py +42 -45
  179. reflex/components/recharts/polar.pyi +254 -288
  180. reflex/components/recharts/recharts.pyi +13 -13
  181. reflex/components/sonner/toast.py +20 -20
  182. reflex/components/sonner/toast.pyi +58 -61
  183. reflex/components/suneditor/editor.py +9 -9
  184. reflex/components/suneditor/editor.pyi +78 -83
  185. reflex/components/tags/cond_tag.py +2 -2
  186. reflex/components/tags/iter_tag.py +10 -14
  187. reflex/components/tags/match_tag.py +2 -2
  188. reflex/components/tags/tag.py +10 -10
  189. reflex/config.py +36 -35
  190. reflex/constants/__init__.py +56 -53
  191. reflex/custom_components/custom_components.py +6 -7
  192. reflex/event.py +38 -42
  193. reflex/experimental/client_state.py +2 -4
  194. reflex/experimental/layout.py +2 -2
  195. reflex/experimental/layout.pyi +579 -663
  196. reflex/istate/data.py +4 -5
  197. reflex/middleware/hydrate_middleware.py +2 -2
  198. reflex/middleware/middleware.py +2 -2
  199. reflex/model.py +3 -5
  200. reflex/page.py +2 -2
  201. reflex/reflex.py +9 -10
  202. reflex/state.py +77 -49
  203. reflex/style.py +11 -5
  204. reflex/testing.py +21 -24
  205. reflex/utils/console.py +1 -1
  206. reflex/utils/decorator.py +26 -1
  207. reflex/utils/exec.py +6 -11
  208. reflex/utils/export.py +2 -3
  209. reflex/utils/format.py +4 -4
  210. reflex/utils/imports.py +12 -12
  211. reflex/utils/prerequisites.py +35 -84
  212. reflex/utils/processes.py +5 -5
  213. reflex/utils/pyi_generator.py +33 -22
  214. reflex/utils/serializers.py +60 -15
  215. reflex/utils/types.py +237 -56
  216. reflex/vars/base.py +122 -72
  217. reflex/vars/datetime.py +2 -2
  218. reflex/vars/function.py +52 -55
  219. reflex/vars/number.py +59 -5
  220. reflex/vars/object.py +57 -26
  221. reflex/vars/sequence.py +983 -958
  222. {reflex-0.7.1a3.dist-info → reflex-0.7.2.dist-info}/METADATA +3 -6
  223. reflex-0.7.2.dist-info/RECORD +405 -0
  224. {reflex-0.7.1a3.dist-info → reflex-0.7.2.dist-info}/WHEEL +1 -1
  225. reflex-0.7.1a3.dist-info/RECORD +0 -405
  226. {reflex-0.7.1a3.dist-info → reflex-0.7.2.dist-info}/LICENSE +0 -0
  227. {reflex-0.7.1a3.dist-info → reflex-0.7.2.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(