reflex 0.7.7a1__py3-none-any.whl → 0.7.8a1__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 (185) hide show
  1. reflex/.templates/web/utils/state.js +26 -16
  2. reflex/admin.py +1 -1
  3. reflex/app.py +6 -17
  4. reflex/app_mixins/lifespan.py +1 -1
  5. reflex/base.py +2 -2
  6. reflex/compiler/compiler.py +8 -7
  7. reflex/compiler/utils.py +6 -5
  8. reflex/components/base/app_wrap.pyi +18 -17
  9. reflex/components/base/bare.py +2 -1
  10. reflex/components/base/body.pyi +214 -19
  11. reflex/components/base/document.pyi +82 -81
  12. reflex/components/base/error_boundary.pyi +19 -18
  13. reflex/components/base/fragment.pyi +18 -17
  14. reflex/components/base/head.pyi +34 -33
  15. reflex/components/base/link.pyi +425 -36
  16. reflex/components/base/meta.pyi +673 -92
  17. reflex/components/base/script.pyi +21 -20
  18. reflex/components/base/strict_mode.pyi +18 -17
  19. reflex/components/component.py +20 -36
  20. reflex/components/core/auto_scroll.pyi +18 -17
  21. reflex/components/core/banner.pyi +98 -97
  22. reflex/components/core/breakpoints.py +1 -1
  23. reflex/components/core/client_side_routing.pyi +34 -33
  24. reflex/components/core/clipboard.py +1 -1
  25. reflex/components/core/clipboard.pyi +19 -18
  26. reflex/components/core/cond.py +2 -2
  27. reflex/components/core/debounce.py +3 -3
  28. reflex/components/core/debounce.pyi +20 -19
  29. reflex/components/core/foreach.py +2 -1
  30. reflex/components/core/html.pyi +18 -17
  31. reflex/components/core/match.py +2 -2
  32. reflex/components/core/sticky.pyi +66 -65
  33. reflex/components/core/upload.py +7 -10
  34. reflex/components/core/upload.pyi +86 -85
  35. reflex/components/datadisplay/code.pyi +34 -33
  36. reflex/components/datadisplay/dataeditor.py +3 -2
  37. reflex/components/datadisplay/dataeditor.pyi +35 -68
  38. reflex/components/datadisplay/shiki_code_block.pyi +50 -49
  39. reflex/components/el/element.pyi +18 -17
  40. reflex/components/el/elements/base.pyi +18 -17
  41. reflex/components/el/elements/forms.py +10 -8
  42. reflex/components/el/elements/forms.pyi +290 -332
  43. reflex/components/el/elements/inline.pyi +450 -449
  44. reflex/components/el/elements/media.pyi +402 -401
  45. reflex/components/el/elements/metadata.pyi +99 -97
  46. reflex/components/el/elements/other.pyi +114 -113
  47. reflex/components/el/elements/scripts.pyi +50 -49
  48. reflex/components/el/elements/sectioning.pyi +242 -241
  49. reflex/components/el/elements/tables.pyi +162 -161
  50. reflex/components/el/elements/typography.pyi +242 -241
  51. reflex/components/gridjs/datatable.py +3 -2
  52. reflex/components/gridjs/datatable.pyi +35 -34
  53. reflex/components/lucide/icon.pyi +50 -49
  54. reflex/components/markdown/markdown.py +2 -1
  55. reflex/components/markdown/markdown.pyi +20 -19
  56. reflex/components/moment/moment.pyi +19 -18
  57. reflex/components/next/base.pyi +18 -17
  58. reflex/components/next/image.pyi +20 -19
  59. reflex/components/next/link.pyi +18 -17
  60. reflex/components/next/video.pyi +18 -17
  61. reflex/components/plotly/plotly.py +3 -3
  62. reflex/components/plotly/plotly.pyi +326 -325
  63. reflex/components/radix/primitives/accordion.py +2 -1
  64. reflex/components/radix/primitives/accordion.pyi +115 -114
  65. reflex/components/radix/primitives/base.pyi +34 -33
  66. reflex/components/radix/primitives/drawer.py +2 -1
  67. reflex/components/radix/primitives/drawer.pyi +187 -186
  68. reflex/components/radix/primitives/form.pyi +168 -182
  69. reflex/components/radix/primitives/progress.pyi +82 -81
  70. reflex/components/radix/primitives/slider.py +2 -1
  71. reflex/components/radix/primitives/slider.pyi +84 -83
  72. reflex/components/radix/themes/base.pyi +130 -129
  73. reflex/components/radix/themes/color_mode.pyi +51 -50
  74. reflex/components/radix/themes/components/alert_dialog.pyi +118 -117
  75. reflex/components/radix/themes/components/aspect_ratio.pyi +18 -17
  76. reflex/components/radix/themes/components/avatar.pyi +18 -17
  77. reflex/components/radix/themes/components/badge.pyi +18 -17
  78. reflex/components/radix/themes/components/button.pyi +18 -17
  79. reflex/components/radix/themes/components/callout.pyi +82 -81
  80. reflex/components/radix/themes/components/card.pyi +18 -17
  81. reflex/components/radix/themes/components/checkbox.pyi +53 -52
  82. reflex/components/radix/themes/components/checkbox_cards.pyi +34 -33
  83. reflex/components/radix/themes/components/checkbox_group.py +2 -1
  84. reflex/components/radix/themes/components/checkbox_group.pyi +34 -33
  85. reflex/components/radix/themes/components/context_menu.pyi +225 -224
  86. reflex/components/radix/themes/components/data_list.pyi +66 -65
  87. reflex/components/radix/themes/components/dialog.pyi +121 -120
  88. reflex/components/radix/themes/components/dropdown_menu.pyi +142 -141
  89. reflex/components/radix/themes/components/hover_card.pyi +68 -67
  90. reflex/components/radix/themes/components/icon_button.pyi +18 -17
  91. reflex/components/radix/themes/components/inset.pyi +18 -17
  92. reflex/components/radix/themes/components/popover.pyi +73 -72
  93. reflex/components/radix/themes/components/progress.pyi +18 -17
  94. reflex/components/radix/themes/components/radio.pyi +18 -17
  95. reflex/components/radix/themes/components/radio_cards.pyi +35 -34
  96. reflex/components/radix/themes/components/radio_group.py +2 -1
  97. reflex/components/radix/themes/components/radio_group.pyi +67 -66
  98. reflex/components/radix/themes/components/scroll_area.pyi +18 -17
  99. reflex/components/radix/themes/components/segmented_control.py +2 -1
  100. reflex/components/radix/themes/components/segmented_control.pyi +35 -34
  101. reflex/components/radix/themes/components/select.py +2 -1
  102. reflex/components/radix/themes/components/select.pyi +155 -154
  103. reflex/components/radix/themes/components/separator.pyi +18 -17
  104. reflex/components/radix/themes/components/skeleton.pyi +18 -17
  105. reflex/components/radix/themes/components/slider.py +2 -1
  106. reflex/components/radix/themes/components/slider.pyi +20 -31
  107. reflex/components/radix/themes/components/spinner.pyi +18 -17
  108. reflex/components/radix/themes/components/switch.pyi +19 -18
  109. reflex/components/radix/themes/components/table.pyi +114 -113
  110. reflex/components/radix/themes/components/tabs.pyi +84 -83
  111. reflex/components/radix/themes/components/text_area.pyi +21 -24
  112. reflex/components/radix/themes/components/text_field.pyi +56 -63
  113. reflex/components/radix/themes/components/tooltip.py +2 -2
  114. reflex/components/radix/themes/components/tooltip.pyi +21 -20
  115. reflex/components/radix/themes/layout/base.pyi +18 -17
  116. reflex/components/radix/themes/layout/box.pyi +18 -17
  117. reflex/components/radix/themes/layout/center.pyi +18 -17
  118. reflex/components/radix/themes/layout/container.pyi +18 -17
  119. reflex/components/radix/themes/layout/flex.pyi +18 -17
  120. reflex/components/radix/themes/layout/grid.pyi +18 -17
  121. reflex/components/radix/themes/layout/list.py +2 -1
  122. reflex/components/radix/themes/layout/list.pyi +473 -83
  123. reflex/components/radix/themes/layout/section.pyi +18 -17
  124. reflex/components/radix/themes/layout/spacer.pyi +18 -17
  125. reflex/components/radix/themes/layout/stack.pyi +50 -49
  126. reflex/components/radix/themes/typography/blockquote.pyi +18 -17
  127. reflex/components/radix/themes/typography/code.pyi +18 -17
  128. reflex/components/radix/themes/typography/heading.pyi +18 -17
  129. reflex/components/radix/themes/typography/link.pyi +18 -17
  130. reflex/components/radix/themes/typography/text.pyi +114 -113
  131. reflex/components/react_player/audio.pyi +34 -36
  132. reflex/components/react_player/react_player.pyi +34 -33
  133. reflex/components/react_player/video.pyi +34 -36
  134. reflex/components/recharts/cartesian.py +7 -6
  135. reflex/components/recharts/cartesian.pyi +302 -301
  136. reflex/components/recharts/charts.py +2 -1
  137. reflex/components/recharts/charts.pyi +177 -176
  138. reflex/components/recharts/general.py +3 -2
  139. reflex/components/recharts/general.pyi +99 -98
  140. reflex/components/recharts/polar.py +9 -8
  141. reflex/components/recharts/polar.pyi +62 -61
  142. reflex/components/recharts/recharts.pyi +34 -33
  143. reflex/components/sonner/toast.pyi +19 -18
  144. reflex/components/suneditor/editor.py +22 -24
  145. reflex/components/suneditor/editor.pyi +27 -28
  146. reflex/components/tags/cond_tag.py +3 -3
  147. reflex/components/tags/iter_tag.py +2 -1
  148. reflex/components/tags/tag.py +3 -2
  149. reflex/config.py +27 -17
  150. reflex/constants/installer.py +4 -4
  151. reflex/constants/route.py +2 -3
  152. reflex/constants/utils.py +4 -3
  153. reflex/event.py +56 -28
  154. reflex/experimental/client_state.py +3 -2
  155. reflex/experimental/layout.pyi +84 -83
  156. reflex/istate/data.py +1 -1
  157. reflex/istate/storage.py +2 -2
  158. reflex/model.py +3 -3
  159. reflex/page.py +3 -2
  160. reflex/state.py +56 -57
  161. reflex/style.py +3 -2
  162. reflex/testing.py +12 -21
  163. reflex/utils/codespaces.py +14 -15
  164. reflex/utils/decorator.py +2 -1
  165. reflex/utils/exec.py +1 -1
  166. reflex/utils/format.py +2 -2
  167. reflex/utils/imports.py +6 -8
  168. reflex/utils/misc.py +2 -1
  169. reflex/utils/net.py +2 -1
  170. reflex/utils/prerequisites.py +12 -5
  171. reflex/utils/processes.py +6 -5
  172. reflex/utils/pyi_generator.py +6 -5
  173. reflex/utils/serializers.py +13 -25
  174. reflex/utils/types.py +34 -46
  175. reflex/vars/base.py +60 -56
  176. reflex/vars/dep_tracking.py +4 -4
  177. reflex/vars/function.py +13 -36
  178. reflex/vars/number.py +5 -17
  179. reflex/vars/object.py +9 -16
  180. reflex/vars/sequence.py +11 -23
  181. {reflex-0.7.7a1.dist-info → reflex-0.7.8a1.dist-info}/METADATA +1 -1
  182. {reflex-0.7.7a1.dist-info → reflex-0.7.8a1.dist-info}/RECORD +185 -185
  183. {reflex-0.7.7a1.dist-info → reflex-0.7.8a1.dist-info}/WHEEL +0 -0
  184. {reflex-0.7.7a1.dist-info → reflex-0.7.8a1.dist-info}/entry_points.txt +0 -0
  185. {reflex-0.7.7a1.dist-info → reflex-0.7.8a1.dist-info}/licenses/LICENSE +0 -0
@@ -3,7 +3,8 @@
3
3
  # ------------------- DO NOT EDIT ----------------------
4
4
  # This file was generated by `reflex/utils/pyi_generator.py`!
5
5
  # ------------------------------------------------------
6
- from typing import Any, Mapping, Optional, Sequence, overload
6
+ from collections.abc import Mapping, Sequence
7
+ from typing import Any, overload
7
8
 
8
9
  from reflex.components.component import Component
9
10
  from reflex.components.core.breakpoints import Breakpoints
@@ -30,23 +31,23 @@ class ClientSideRouting(Component):
30
31
  class_name: Any | None = None,
31
32
  autofocus: bool | None = None,
32
33
  custom_attrs: dict[str, Var | Any] | None = None,
33
- on_blur: Optional[EventType[()]] = None,
34
- on_click: Optional[EventType[()]] = None,
35
- on_context_menu: Optional[EventType[()]] = None,
36
- on_double_click: Optional[EventType[()]] = None,
37
- on_focus: Optional[EventType[()]] = None,
38
- on_mount: Optional[EventType[()]] = None,
39
- on_mouse_down: Optional[EventType[()]] = None,
40
- on_mouse_enter: Optional[EventType[()]] = None,
41
- on_mouse_leave: Optional[EventType[()]] = None,
42
- on_mouse_move: Optional[EventType[()]] = None,
43
- on_mouse_out: Optional[EventType[()]] = None,
44
- on_mouse_over: Optional[EventType[()]] = None,
45
- on_mouse_up: Optional[EventType[()]] = None,
46
- on_scroll: Optional[EventType[()]] = None,
47
- on_unmount: Optional[EventType[()]] = None,
34
+ on_blur: EventType[()] | None = None,
35
+ on_click: EventType[()] | None = None,
36
+ on_context_menu: EventType[()] | None = None,
37
+ on_double_click: EventType[()] | None = None,
38
+ on_focus: EventType[()] | None = None,
39
+ on_mount: EventType[()] | None = None,
40
+ on_mouse_down: EventType[()] | None = None,
41
+ on_mouse_enter: EventType[()] | None = None,
42
+ on_mouse_leave: EventType[()] | None = None,
43
+ on_mouse_move: EventType[()] | None = None,
44
+ on_mouse_out: EventType[()] | None = None,
45
+ on_mouse_over: EventType[()] | None = None,
46
+ on_mouse_up: EventType[()] | None = None,
47
+ on_scroll: EventType[()] | None = None,
48
+ on_unmount: EventType[()] | None = None,
48
49
  **props,
49
- ) -> "ClientSideRouting":
50
+ ) -> ClientSideRouting:
50
51
  """Create the component.
51
52
 
52
53
  Args:
@@ -83,23 +84,23 @@ class Default404Page(Component):
83
84
  class_name: Any | None = None,
84
85
  autofocus: bool | None = None,
85
86
  custom_attrs: dict[str, Var | Any] | None = None,
86
- on_blur: Optional[EventType[()]] = None,
87
- on_click: Optional[EventType[()]] = None,
88
- on_context_menu: Optional[EventType[()]] = None,
89
- on_double_click: Optional[EventType[()]] = None,
90
- on_focus: Optional[EventType[()]] = None,
91
- on_mount: Optional[EventType[()]] = None,
92
- on_mouse_down: Optional[EventType[()]] = None,
93
- on_mouse_enter: Optional[EventType[()]] = None,
94
- on_mouse_leave: Optional[EventType[()]] = None,
95
- on_mouse_move: Optional[EventType[()]] = None,
96
- on_mouse_out: Optional[EventType[()]] = None,
97
- on_mouse_over: Optional[EventType[()]] = None,
98
- on_mouse_up: Optional[EventType[()]] = None,
99
- on_scroll: Optional[EventType[()]] = None,
100
- on_unmount: Optional[EventType[()]] = None,
87
+ on_blur: EventType[()] | None = None,
88
+ on_click: EventType[()] | None = None,
89
+ on_context_menu: EventType[()] | None = None,
90
+ on_double_click: EventType[()] | None = None,
91
+ on_focus: EventType[()] | None = None,
92
+ on_mount: EventType[()] | None = None,
93
+ on_mouse_down: EventType[()] | None = None,
94
+ on_mouse_enter: EventType[()] | None = None,
95
+ on_mouse_leave: EventType[()] | None = None,
96
+ on_mouse_move: EventType[()] | None = None,
97
+ on_mouse_out: EventType[()] | None = None,
98
+ on_mouse_over: EventType[()] | None = None,
99
+ on_mouse_up: EventType[()] | None = None,
100
+ on_scroll: EventType[()] | None = None,
101
+ on_unmount: EventType[()] | None = None,
101
102
  **props,
102
- ) -> "Default404Page":
103
+ ) -> Default404Page:
103
104
  """Create the component.
104
105
 
105
106
  Args:
@@ -2,7 +2,7 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import Sequence
5
+ from collections.abc import Sequence
6
6
 
7
7
  from reflex.components.base.fragment import Fragment
8
8
  from reflex.components.tags.tag import Tag
@@ -3,7 +3,8 @@
3
3
  # ------------------- DO NOT EDIT ----------------------
4
4
  # This file was generated by `reflex/utils/pyi_generator.py`!
5
5
  # ------------------------------------------------------
6
- from typing import Any, Mapping, Optional, Sequence, overload
6
+ from collections.abc import Mapping, Sequence
7
+ from typing import Any, overload
7
8
 
8
9
  from reflex.components.base.fragment import Fragment
9
10
  from reflex.components.core.breakpoints import Breakpoints
@@ -31,24 +32,24 @@ class Clipboard(Fragment):
31
32
  class_name: Any | None = None,
32
33
  autofocus: bool | None = None,
33
34
  custom_attrs: dict[str, Var | Any] | None = None,
34
- on_blur: Optional[EventType[()]] = None,
35
- on_click: Optional[EventType[()]] = None,
36
- on_context_menu: Optional[EventType[()]] = None,
37
- on_double_click: Optional[EventType[()]] = None,
38
- on_focus: Optional[EventType[()]] = None,
39
- on_mount: Optional[EventType[()]] = None,
40
- on_mouse_down: Optional[EventType[()]] = None,
41
- on_mouse_enter: Optional[EventType[()]] = None,
42
- on_mouse_leave: Optional[EventType[()]] = None,
43
- on_mouse_move: Optional[EventType[()]] = None,
44
- on_mouse_out: Optional[EventType[()]] = None,
45
- on_mouse_over: Optional[EventType[()]] = None,
46
- on_mouse_up: Optional[EventType[()]] = None,
47
- on_paste: Optional[EventType[()] | EventType[list[tuple[str, str]]]] = None,
48
- on_scroll: Optional[EventType[()]] = None,
49
- on_unmount: Optional[EventType[()]] = None,
35
+ on_blur: EventType[()] | None = None,
36
+ on_click: EventType[()] | None = None,
37
+ on_context_menu: EventType[()] | None = None,
38
+ on_double_click: EventType[()] | None = None,
39
+ on_focus: EventType[()] | None = None,
40
+ on_mount: EventType[()] | None = None,
41
+ on_mouse_down: EventType[()] | None = None,
42
+ on_mouse_enter: EventType[()] | None = None,
43
+ on_mouse_leave: EventType[()] | None = None,
44
+ on_mouse_move: EventType[()] | None = None,
45
+ on_mouse_out: EventType[()] | None = None,
46
+ on_mouse_over: EventType[()] | None = None,
47
+ on_mouse_up: EventType[()] | None = None,
48
+ on_paste: EventType[()] | EventType[list[tuple[str, str]]] | None = None,
49
+ on_scroll: EventType[()] | None = None,
50
+ on_unmount: EventType[()] | None = None,
50
51
  **props,
51
- ) -> "Clipboard":
52
+ ) -> Clipboard:
52
53
  """Create a Clipboard component.
53
54
 
54
55
  Args:
@@ -2,7 +2,7 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import Any, Dict, overload
5
+ from typing import Any, overload
6
6
 
7
7
  from reflex.components.base.fragment import Fragment
8
8
  from reflex.components.component import BaseComponent, Component, MemoizationLeaf
@@ -66,7 +66,7 @@ class Cond(MemoizationLeaf):
66
66
  false_value=self.children[1].render(),
67
67
  )
68
68
 
69
- def render(self) -> Dict:
69
+ def render(self) -> dict:
70
70
  """Render the component.
71
71
 
72
72
  Returns:
@@ -2,7 +2,7 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import Any, Type
5
+ from typing import Any
6
6
 
7
7
  from reflex.components.component import Component
8
8
  from reflex.constants import EventTriggers
@@ -43,7 +43,7 @@ class DebounceInput(Component):
43
43
  input_ref: Var[str]
44
44
 
45
45
  # The element to wrap
46
- element: Var[Type[Component]]
46
+ element: Var[type[Component]]
47
47
 
48
48
  # Fired when the input value changes
49
49
  on_change: EventHandler[no_args_event_spec]
@@ -115,7 +115,7 @@ class DebounceInput(Component):
115
115
  "element",
116
116
  Var(
117
117
  _js_expr=str(child.alias or child.tag),
118
- _var_type=Type[Component],
118
+ _var_type=type[Component],
119
119
  _var_data=VarData(
120
120
  imports=child._get_imports(),
121
121
  hooks=child._get_all_hooks(),
@@ -3,7 +3,8 @@
3
3
  # ------------------- DO NOT EDIT ----------------------
4
4
  # This file was generated by `reflex/utils/pyi_generator.py`!
5
5
  # ------------------------------------------------------
6
- from typing import Any, Mapping, Optional, Sequence, Type, overload
6
+ from collections.abc import Mapping, Sequence
7
+ from typing import Any, overload
7
8
 
8
9
  from reflex.components.component import Component
9
10
  from reflex.components.core.breakpoints import Breakpoints
@@ -24,7 +25,7 @@ class DebounceInput(Component):
24
25
  force_notify_on_blur: Var[bool] | bool | None = None,
25
26
  value: Var[float | int | str] | float | int | str | None = None,
26
27
  input_ref: Var[str] | str | None = None,
27
- element: Type[Component] | Var[Type[Component]] | None = None,
28
+ element: Var[type[Component]] | type[Component] | None = None,
28
29
  style: Sequence[Mapping[str, Any]]
29
30
  | Mapping[str, Any]
30
31
  | Var[Mapping[str, Any]]
@@ -35,24 +36,24 @@ class DebounceInput(Component):
35
36
  class_name: Any | None = None,
36
37
  autofocus: bool | None = None,
37
38
  custom_attrs: dict[str, Var | Any] | None = None,
38
- on_blur: Optional[EventType[()]] = None,
39
- on_change: Optional[EventType[()]] = None,
40
- on_click: Optional[EventType[()]] = None,
41
- on_context_menu: Optional[EventType[()]] = None,
42
- on_double_click: Optional[EventType[()]] = None,
43
- on_focus: Optional[EventType[()]] = None,
44
- on_mount: Optional[EventType[()]] = None,
45
- on_mouse_down: Optional[EventType[()]] = None,
46
- on_mouse_enter: Optional[EventType[()]] = None,
47
- on_mouse_leave: Optional[EventType[()]] = None,
48
- on_mouse_move: Optional[EventType[()]] = None,
49
- on_mouse_out: Optional[EventType[()]] = None,
50
- on_mouse_over: Optional[EventType[()]] = None,
51
- on_mouse_up: Optional[EventType[()]] = None,
52
- on_scroll: Optional[EventType[()]] = None,
53
- on_unmount: Optional[EventType[()]] = None,
39
+ on_blur: EventType[()] | None = None,
40
+ on_change: EventType[()] | None = None,
41
+ on_click: EventType[()] | None = None,
42
+ on_context_menu: EventType[()] | None = None,
43
+ on_double_click: EventType[()] | None = None,
44
+ on_focus: EventType[()] | None = None,
45
+ on_mount: EventType[()] | None = None,
46
+ on_mouse_down: EventType[()] | None = None,
47
+ on_mouse_enter: EventType[()] | None = None,
48
+ on_mouse_leave: EventType[()] | None = None,
49
+ on_mouse_move: EventType[()] | None = None,
50
+ on_mouse_out: EventType[()] | None = None,
51
+ on_mouse_over: EventType[()] | None = None,
52
+ on_mouse_up: EventType[()] | None = None,
53
+ on_scroll: EventType[()] | None = None,
54
+ on_unmount: EventType[()] | None = None,
54
55
  **props,
55
- ) -> "DebounceInput":
56
+ ) -> DebounceInput:
56
57
  """Create a DebounceInput component.
57
58
 
58
59
  Carry first child props directly on this tag.
@@ -4,7 +4,8 @@ from __future__ import annotations
4
4
 
5
5
  import functools
6
6
  import inspect
7
- from typing import Any, Callable, Iterable
7
+ from collections.abc import Callable, Iterable
8
+ from typing import Any
8
9
 
9
10
  from reflex.components.base.fragment import Fragment
10
11
  from reflex.components.component import Component
@@ -3,7 +3,8 @@
3
3
  # ------------------- DO NOT EDIT ----------------------
4
4
  # This file was generated by `reflex/utils/pyi_generator.py`!
5
5
  # ------------------------------------------------------
6
- from typing import Any, Literal, Mapping, Optional, Sequence, overload
6
+ from collections.abc import Mapping, Sequence
7
+ from typing import Any, Literal, overload
7
8
 
8
9
  from reflex.components.core.breakpoints import Breakpoints
9
10
  from reflex.components.el.elements.typography import Div
@@ -205,23 +206,23 @@ class Html(Div):
205
206
  class_name: Any | None = None,
206
207
  autofocus: bool | None = None,
207
208
  custom_attrs: dict[str, Var | Any] | None = None,
208
- on_blur: Optional[EventType[()]] = None,
209
- on_click: Optional[EventType[()]] = None,
210
- on_context_menu: Optional[EventType[()]] = None,
211
- on_double_click: Optional[EventType[()]] = None,
212
- on_focus: Optional[EventType[()]] = None,
213
- on_mount: Optional[EventType[()]] = None,
214
- on_mouse_down: Optional[EventType[()]] = None,
215
- on_mouse_enter: Optional[EventType[()]] = None,
216
- on_mouse_leave: Optional[EventType[()]] = None,
217
- on_mouse_move: Optional[EventType[()]] = None,
218
- on_mouse_out: Optional[EventType[()]] = None,
219
- on_mouse_over: Optional[EventType[()]] = None,
220
- on_mouse_up: Optional[EventType[()]] = None,
221
- on_scroll: Optional[EventType[()]] = None,
222
- on_unmount: Optional[EventType[()]] = None,
209
+ on_blur: EventType[()] | None = None,
210
+ on_click: EventType[()] | None = None,
211
+ on_context_menu: EventType[()] | None = None,
212
+ on_double_click: EventType[()] | None = None,
213
+ on_focus: EventType[()] | None = None,
214
+ on_mount: EventType[()] | None = None,
215
+ on_mouse_down: EventType[()] | None = None,
216
+ on_mouse_enter: EventType[()] | None = None,
217
+ on_mouse_leave: EventType[()] | None = None,
218
+ on_mouse_move: EventType[()] | None = None,
219
+ on_mouse_out: EventType[()] | None = None,
220
+ on_mouse_over: EventType[()] | None = None,
221
+ on_mouse_up: EventType[()] | None = None,
222
+ on_scroll: EventType[()] | None = None,
223
+ on_unmount: EventType[()] | None = None,
223
224
  **props,
224
- ) -> "Html":
225
+ ) -> Html:
225
226
  """Create a html component.
226
227
 
227
228
  Args:
@@ -1,7 +1,7 @@
1
1
  """rx.match."""
2
2
 
3
3
  import textwrap
4
- from typing import Any, Dict
4
+ from typing import Any
5
5
 
6
6
  from reflex.components.base import Fragment
7
7
  from reflex.components.component import BaseComponent, Component, MemoizationLeaf
@@ -247,7 +247,7 @@ class Match(MemoizationLeaf):
247
247
  cond=self.cond, match_cases=self.match_cases, default=self.default
248
248
  )
249
249
 
250
- def render(self) -> Dict:
250
+ def render(self) -> dict:
251
251
  """Render the component.
252
252
 
253
253
  Returns:
@@ -3,7 +3,8 @@
3
3
  # ------------------- DO NOT EDIT ----------------------
4
4
  # This file was generated by `reflex/utils/pyi_generator.py`!
5
5
  # ------------------------------------------------------
6
- from typing import Any, Literal, Mapping, Optional, Sequence, overload
6
+ from collections.abc import Mapping, Sequence
7
+ from typing import Any, Literal, overload
7
8
 
8
9
  from reflex.components.component import ComponentNamespace
9
10
  from reflex.components.core.breakpoints import Breakpoints
@@ -210,23 +211,23 @@ class StickyLogo(Svg):
210
211
  class_name: Any | None = None,
211
212
  autofocus: bool | None = None,
212
213
  custom_attrs: dict[str, Var | Any] | None = None,
213
- on_blur: Optional[EventType[()]] = None,
214
- on_click: Optional[EventType[()]] = None,
215
- on_context_menu: Optional[EventType[()]] = None,
216
- on_double_click: Optional[EventType[()]] = None,
217
- on_focus: Optional[EventType[()]] = None,
218
- on_mount: Optional[EventType[()]] = None,
219
- on_mouse_down: Optional[EventType[()]] = None,
220
- on_mouse_enter: Optional[EventType[()]] = None,
221
- on_mouse_leave: Optional[EventType[()]] = None,
222
- on_mouse_move: Optional[EventType[()]] = None,
223
- on_mouse_out: Optional[EventType[()]] = None,
224
- on_mouse_over: Optional[EventType[()]] = None,
225
- on_mouse_up: Optional[EventType[()]] = None,
226
- on_scroll: Optional[EventType[()]] = None,
227
- on_unmount: Optional[EventType[()]] = None,
214
+ on_blur: EventType[()] | None = None,
215
+ on_click: EventType[()] | None = None,
216
+ on_context_menu: EventType[()] | None = None,
217
+ on_double_click: EventType[()] | None = None,
218
+ on_focus: EventType[()] | None = None,
219
+ on_mount: EventType[()] | None = None,
220
+ on_mouse_down: EventType[()] | None = None,
221
+ on_mouse_enter: EventType[()] | None = None,
222
+ on_mouse_leave: EventType[()] | None = None,
223
+ on_mouse_move: EventType[()] | None = None,
224
+ on_mouse_out: EventType[()] | None = None,
225
+ on_mouse_over: EventType[()] | None = None,
226
+ on_mouse_up: EventType[()] | None = None,
227
+ on_scroll: EventType[()] | None = None,
228
+ on_unmount: EventType[()] | None = None,
228
229
  **props,
229
- ) -> "StickyLogo":
230
+ ) -> StickyLogo:
230
231
  """Create the simple Reflex logo SVG.
231
232
 
232
233
  Returns:
@@ -562,23 +563,23 @@ class StickyLabel(Text):
562
563
  class_name: Any | None = None,
563
564
  autofocus: bool | None = None,
564
565
  custom_attrs: dict[str, Var | Any] | None = None,
565
- on_blur: Optional[EventType[()]] = None,
566
- on_click: Optional[EventType[()]] = None,
567
- on_context_menu: Optional[EventType[()]] = None,
568
- on_double_click: Optional[EventType[()]] = None,
569
- on_focus: Optional[EventType[()]] = None,
570
- on_mount: Optional[EventType[()]] = None,
571
- on_mouse_down: Optional[EventType[()]] = None,
572
- on_mouse_enter: Optional[EventType[()]] = None,
573
- on_mouse_leave: Optional[EventType[()]] = None,
574
- on_mouse_move: Optional[EventType[()]] = None,
575
- on_mouse_out: Optional[EventType[()]] = None,
576
- on_mouse_over: Optional[EventType[()]] = None,
577
- on_mouse_up: Optional[EventType[()]] = None,
578
- on_scroll: Optional[EventType[()]] = None,
579
- on_unmount: Optional[EventType[()]] = None,
566
+ on_blur: EventType[()] | None = None,
567
+ on_click: EventType[()] | None = None,
568
+ on_context_menu: EventType[()] | None = None,
569
+ on_double_click: EventType[()] | None = None,
570
+ on_focus: EventType[()] | None = None,
571
+ on_mount: EventType[()] | None = None,
572
+ on_mouse_down: EventType[()] | None = None,
573
+ on_mouse_enter: EventType[()] | None = None,
574
+ on_mouse_leave: EventType[()] | None = None,
575
+ on_mouse_move: EventType[()] | None = None,
576
+ on_mouse_out: EventType[()] | None = None,
577
+ on_mouse_over: EventType[()] | None = None,
578
+ on_mouse_up: EventType[()] | None = None,
579
+ on_scroll: EventType[()] | None = None,
580
+ on_unmount: EventType[()] | None = None,
580
581
  **props,
581
- ) -> "StickyLabel":
582
+ ) -> StickyLabel:
582
583
  """Create the sticky label.
583
584
 
584
585
  Returns:
@@ -817,23 +818,23 @@ class StickyBadge(A):
817
818
  class_name: Any | None = None,
818
819
  autofocus: bool | None = None,
819
820
  custom_attrs: dict[str, Var | Any] | None = None,
820
- on_blur: Optional[EventType[()]] = None,
821
- on_click: Optional[EventType[()]] = None,
822
- on_context_menu: Optional[EventType[()]] = None,
823
- on_double_click: Optional[EventType[()]] = None,
824
- on_focus: Optional[EventType[()]] = None,
825
- on_mount: Optional[EventType[()]] = None,
826
- on_mouse_down: Optional[EventType[()]] = None,
827
- on_mouse_enter: Optional[EventType[()]] = None,
828
- on_mouse_leave: Optional[EventType[()]] = None,
829
- on_mouse_move: Optional[EventType[()]] = None,
830
- on_mouse_out: Optional[EventType[()]] = None,
831
- on_mouse_over: Optional[EventType[()]] = None,
832
- on_mouse_up: Optional[EventType[()]] = None,
833
- on_scroll: Optional[EventType[()]] = None,
834
- on_unmount: Optional[EventType[()]] = None,
821
+ on_blur: EventType[()] | None = None,
822
+ on_click: EventType[()] | None = None,
823
+ on_context_menu: EventType[()] | None = None,
824
+ on_double_click: EventType[()] | None = None,
825
+ on_focus: EventType[()] | None = None,
826
+ on_mount: EventType[()] | None = None,
827
+ on_mouse_down: EventType[()] | None = None,
828
+ on_mouse_enter: EventType[()] | None = None,
829
+ on_mouse_leave: EventType[()] | None = None,
830
+ on_mouse_move: EventType[()] | None = None,
831
+ on_mouse_out: EventType[()] | None = None,
832
+ on_mouse_over: EventType[()] | None = None,
833
+ on_mouse_up: EventType[()] | None = None,
834
+ on_scroll: EventType[()] | None = None,
835
+ on_unmount: EventType[()] | None = None,
835
836
  **props,
836
- ) -> "StickyBadge":
837
+ ) -> StickyBadge:
837
838
  """Create the sticky badge.
838
839
 
839
840
  Returns:
@@ -1073,23 +1074,23 @@ class StickyNamespace(ComponentNamespace):
1073
1074
  class_name: Any | None = None,
1074
1075
  autofocus: bool | None = None,
1075
1076
  custom_attrs: dict[str, Var | Any] | None = None,
1076
- on_blur: Optional[EventType[()]] = None,
1077
- on_click: Optional[EventType[()]] = None,
1078
- on_context_menu: Optional[EventType[()]] = None,
1079
- on_double_click: Optional[EventType[()]] = None,
1080
- on_focus: Optional[EventType[()]] = None,
1081
- on_mount: Optional[EventType[()]] = None,
1082
- on_mouse_down: Optional[EventType[()]] = None,
1083
- on_mouse_enter: Optional[EventType[()]] = None,
1084
- on_mouse_leave: Optional[EventType[()]] = None,
1085
- on_mouse_move: Optional[EventType[()]] = None,
1086
- on_mouse_out: Optional[EventType[()]] = None,
1087
- on_mouse_over: Optional[EventType[()]] = None,
1088
- on_mouse_up: Optional[EventType[()]] = None,
1089
- on_scroll: Optional[EventType[()]] = None,
1090
- on_unmount: Optional[EventType[()]] = None,
1077
+ on_blur: EventType[()] | None = None,
1078
+ on_click: EventType[()] | None = None,
1079
+ on_context_menu: EventType[()] | None = None,
1080
+ on_double_click: EventType[()] | None = None,
1081
+ on_focus: EventType[()] | None = None,
1082
+ on_mount: EventType[()] | None = None,
1083
+ on_mouse_down: EventType[()] | None = None,
1084
+ on_mouse_enter: EventType[()] | None = None,
1085
+ on_mouse_leave: EventType[()] | None = None,
1086
+ on_mouse_move: EventType[()] | None = None,
1087
+ on_mouse_out: EventType[()] | None = None,
1088
+ on_mouse_over: EventType[()] | None = None,
1089
+ on_mouse_up: EventType[()] | None = None,
1090
+ on_scroll: EventType[()] | None = None,
1091
+ on_unmount: EventType[()] | None = None,
1091
1092
  **props,
1092
- ) -> "StickyBadge":
1093
+ ) -> StickyBadge:
1093
1094
  """Create the sticky badge.
1094
1095
 
1095
1096
  Returns:
@@ -2,8 +2,9 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
+ from collections.abc import Callable, Sequence
5
6
  from pathlib import Path
6
- from typing import Any, Callable, ClassVar, Sequence
7
+ from typing import Any, ClassVar
7
8
 
8
9
  from reflex.components.base.fragment import Fragment
9
10
  from reflex.components.component import (
@@ -23,6 +24,7 @@ from reflex.event import (
23
24
  EventHandler,
24
25
  EventSpec,
25
26
  call_event_fn,
27
+ call_event_handler,
26
28
  parse_args_spec,
27
29
  run_script,
28
30
  )
@@ -265,17 +267,12 @@ class Upload(MemoizationLeaf):
265
267
  upload_props["on_drop"] = upload_file(upload_props["id"])
266
268
  else:
267
269
  on_drop = upload_props["on_drop"]
268
- if isinstance(on_drop, Callable):
270
+ if isinstance(on_drop, (EventHandler, EventSpec)):
271
+ # Call the lambda to get the event chain.
272
+ on_drop = call_event_handler(on_drop, _on_drop_spec)
273
+ elif isinstance(on_drop, Callable):
269
274
  # Call the lambda to get the event chain.
270
275
  on_drop = call_event_fn(on_drop, _on_drop_spec)
271
- if isinstance(on_drop, EventSpec):
272
- # Update the provided args for direct use with on_drop.
273
- on_drop = on_drop.with_args(
274
- args=tuple(
275
- cls._update_arg_tuple_for_on_drop(arg_value)
276
- for arg_value in on_drop.args
277
- ),
278
- )
279
276
  upload_props["on_drop"] = on_drop
280
277
 
281
278
  input_props_unique_name = get_unique_variable_name()