reflex 0.6.2a2__py3-none-any.whl → 0.6.3__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 (179) hide show
  1. reflex/__init__.py +3 -2
  2. reflex/__init__.pyi +3 -1
  3. reflex/components/base/app_wrap.pyi +17 -37
  4. reflex/components/base/body.pyi +17 -37
  5. reflex/components/base/document.pyi +77 -177
  6. reflex/components/base/error_boundary.pyi +18 -38
  7. reflex/components/base/fragment.pyi +17 -37
  8. reflex/components/base/head.pyi +32 -72
  9. reflex/components/base/link.pyi +32 -72
  10. reflex/components/base/meta.pyi +62 -142
  11. reflex/components/base/script.py +4 -4
  12. reflex/components/base/script.pyi +20 -40
  13. reflex/components/component.py +30 -19
  14. reflex/components/core/banner.pyi +77 -177
  15. reflex/components/core/client_side_routing.pyi +32 -72
  16. reflex/components/core/clipboard.py +3 -3
  17. reflex/components/core/clipboard.pyi +18 -38
  18. reflex/components/core/debounce.py +2 -2
  19. reflex/components/core/debounce.pyi +18 -38
  20. reflex/components/core/html.pyi +17 -37
  21. reflex/components/core/upload.py +4 -4
  22. reflex/components/core/upload.pyi +65 -145
  23. reflex/components/datadisplay/code.pyi +32 -72
  24. reflex/components/datadisplay/dataeditor.py +13 -13
  25. reflex/components/datadisplay/dataeditor.pyi +33 -83
  26. reflex/components/dynamic.py +6 -7
  27. reflex/components/el/__init__.pyi +1 -0
  28. reflex/components/el/element.pyi +17 -37
  29. reflex/components/el/elements/base.pyi +17 -37
  30. reflex/components/el/elements/forms.py +29 -14
  31. reflex/components/el/elements/forms.pyi +222 -504
  32. reflex/components/el/elements/inline.pyi +422 -982
  33. reflex/components/el/elements/media.pyi +377 -877
  34. reflex/components/el/elements/metadata.pyi +92 -212
  35. reflex/components/el/elements/other.pyi +107 -247
  36. reflex/components/el/elements/scripts.pyi +47 -107
  37. reflex/components/el/elements/sectioning.pyi +227 -527
  38. reflex/components/el/elements/tables.pyi +152 -352
  39. reflex/components/el/elements/typography.pyi +227 -527
  40. reflex/components/gridjs/datatable.py +2 -2
  41. reflex/components/gridjs/datatable.pyi +32 -72
  42. reflex/components/lucide/icon.pyi +32 -72
  43. reflex/components/markdown/markdown.pyi +16 -36
  44. reflex/components/moment/moment.py +2 -2
  45. reflex/components/moment/moment.pyi +18 -38
  46. reflex/components/next/base.pyi +17 -37
  47. reflex/components/next/image.py +3 -3
  48. reflex/components/next/image.pyi +19 -39
  49. reflex/components/next/link.pyi +17 -37
  50. reflex/components/next/video.pyi +17 -37
  51. reflex/components/plotly/plotly.py +1 -1
  52. reflex/components/plotly/plotly.pyi +35 -87
  53. reflex/components/radix/primitives/accordion.py +14 -2
  54. reflex/components/radix/primitives/accordion.pyi +110 -250
  55. reflex/components/radix/primitives/base.pyi +32 -72
  56. reflex/components/radix/primitives/drawer.py +30 -12
  57. reflex/components/radix/primitives/drawer.pyi +159 -373
  58. reflex/components/radix/primitives/form.py +3 -3
  59. reflex/components/radix/primitives/form.pyi +158 -364
  60. reflex/components/radix/primitives/progress.pyi +77 -177
  61. reflex/components/radix/primitives/slider.py +17 -3
  62. reflex/components/radix/primitives/slider.pyi +81 -183
  63. reflex/components/radix/themes/base.pyi +107 -247
  64. reflex/components/radix/themes/color_mode.pyi +48 -117
  65. reflex/components/radix/themes/components/alert_dialog.py +5 -5
  66. reflex/components/radix/themes/components/alert_dialog.pyi +111 -259
  67. reflex/components/radix/themes/components/aspect_ratio.pyi +17 -37
  68. reflex/components/radix/themes/components/avatar.pyi +17 -37
  69. reflex/components/radix/themes/components/badge.pyi +17 -37
  70. reflex/components/radix/themes/components/button.pyi +17 -37
  71. reflex/components/radix/themes/components/callout.pyi +77 -177
  72. reflex/components/radix/themes/components/card.pyi +17 -37
  73. reflex/components/radix/themes/components/checkbox.py +3 -3
  74. reflex/components/radix/themes/components/checkbox.pyi +50 -110
  75. reflex/components/radix/themes/components/checkbox_cards.pyi +32 -72
  76. reflex/components/radix/themes/components/checkbox_group.pyi +32 -72
  77. reflex/components/radix/themes/components/context_menu.py +11 -11
  78. reflex/components/radix/themes/components/context_menu.pyi +132 -312
  79. reflex/components/radix/themes/components/data_list.pyi +62 -142
  80. reflex/components/radix/themes/components/dialog.py +7 -7
  81. reflex/components/radix/themes/components/dialog.pyi +114 -268
  82. reflex/components/radix/themes/components/dropdown_menu.py +13 -13
  83. reflex/components/radix/themes/components/dropdown_menu.pyi +134 -316
  84. reflex/components/radix/themes/components/hover_card.py +2 -2
  85. reflex/components/radix/themes/components/hover_card.pyi +64 -148
  86. reflex/components/radix/themes/components/icon_button.pyi +17 -37
  87. reflex/components/radix/themes/components/inset.pyi +17 -37
  88. reflex/components/radix/themes/components/popover.py +8 -8
  89. reflex/components/radix/themes/components/popover.pyi +69 -163
  90. reflex/components/radix/themes/components/progress.pyi +17 -37
  91. reflex/components/radix/themes/components/radio.pyi +17 -37
  92. reflex/components/radix/themes/components/radio_cards.py +2 -2
  93. reflex/components/radix/themes/components/radio_cards.pyi +33 -75
  94. reflex/components/radix/themes/components/radio_group.py +4 -4
  95. reflex/components/radix/themes/components/radio_group.pyi +63 -143
  96. reflex/components/radix/themes/components/scroll_area.pyi +17 -37
  97. reflex/components/radix/themes/components/segmented_control.py +14 -2
  98. reflex/components/radix/themes/components/segmented_control.pyi +35 -73
  99. reflex/components/radix/themes/components/select.py +6 -5
  100. reflex/components/radix/themes/components/select.pyi +146 -338
  101. reflex/components/radix/themes/components/separator.pyi +17 -37
  102. reflex/components/radix/themes/components/skeleton.pyi +17 -37
  103. reflex/components/radix/themes/components/slider.py +19 -3
  104. reflex/components/radix/themes/components/slider.pyi +23 -41
  105. reflex/components/radix/themes/components/spinner.pyi +17 -37
  106. reflex/components/radix/themes/components/switch.py +2 -2
  107. reflex/components/radix/themes/components/switch.pyi +18 -38
  108. reflex/components/radix/themes/components/table.pyi +107 -247
  109. reflex/components/radix/themes/components/tabs.py +2 -2
  110. reflex/components/radix/themes/components/tabs.pyi +79 -179
  111. reflex/components/radix/themes/components/text_area.py +0 -16
  112. reflex/components/radix/themes/components/text_area.pyi +20 -42
  113. reflex/components/radix/themes/components/text_field.py +6 -6
  114. reflex/components/radix/themes/components/text_field.pyi +53 -117
  115. reflex/components/radix/themes/components/tooltip.py +4 -4
  116. reflex/components/radix/themes/components/tooltip.pyi +20 -46
  117. reflex/components/radix/themes/layout/base.pyi +17 -37
  118. reflex/components/radix/themes/layout/box.pyi +17 -37
  119. reflex/components/radix/themes/layout/center.pyi +17 -37
  120. reflex/components/radix/themes/layout/container.pyi +17 -37
  121. reflex/components/radix/themes/layout/flex.pyi +17 -37
  122. reflex/components/radix/themes/layout/grid.pyi +17 -37
  123. reflex/components/radix/themes/layout/list.pyi +77 -177
  124. reflex/components/radix/themes/layout/section.pyi +17 -37
  125. reflex/components/radix/themes/layout/spacer.pyi +17 -37
  126. reflex/components/radix/themes/layout/stack.pyi +47 -107
  127. reflex/components/radix/themes/typography/blockquote.pyi +17 -37
  128. reflex/components/radix/themes/typography/code.pyi +17 -37
  129. reflex/components/radix/themes/typography/heading.pyi +17 -37
  130. reflex/components/radix/themes/typography/link.pyi +17 -37
  131. reflex/components/radix/themes/typography/text.pyi +107 -247
  132. reflex/components/react_player/audio.pyi +33 -69
  133. reflex/components/react_player/react_player.py +17 -17
  134. reflex/components/react_player/react_player.pyi +33 -69
  135. reflex/components/react_player/video.pyi +33 -69
  136. reflex/components/recharts/cartesian.py +216 -186
  137. reflex/components/recharts/cartesian.pyi +623 -832
  138. reflex/components/recharts/charts.py +68 -65
  139. reflex/components/recharts/charts.pyi +213 -433
  140. reflex/components/recharts/general.py +27 -21
  141. reflex/components/recharts/general.pyi +94 -189
  142. reflex/components/recharts/polar.py +135 -97
  143. reflex/components/recharts/polar.pyi +219 -229
  144. reflex/components/recharts/recharts.py +5 -1
  145. reflex/components/recharts/recharts.pyi +37 -73
  146. reflex/components/sonner/toast.py +1 -1
  147. reflex/components/sonner/toast.pyi +17 -37
  148. reflex/components/suneditor/editor.pyi +26 -52
  149. reflex/components/tags/iter_tag.py +2 -2
  150. reflex/config.py +16 -0
  151. reflex/constants/__init__.py +2 -0
  152. reflex/constants/compiler.py +25 -0
  153. reflex/constants/installer.py +17 -16
  154. reflex/constants/state.py +11 -0
  155. reflex/constants/style.py +1 -1
  156. reflex/custom_components/custom_components.py +1 -1
  157. reflex/event.py +337 -84
  158. reflex/experimental/layout.pyi +78 -180
  159. reflex/istate/dynamic.py +3 -0
  160. reflex/state.py +197 -118
  161. reflex/style.py +5 -0
  162. reflex/testing.py +8 -5
  163. reflex/utils/compat.py +1 -3
  164. reflex/utils/exceptions.py +8 -0
  165. reflex/utils/path_ops.py +2 -2
  166. reflex/utils/prerequisites.py +2 -2
  167. reflex/utils/pyi_generator.py +44 -4
  168. reflex/utils/registry.py +17 -3
  169. reflex/utils/telemetry.py +1 -3
  170. reflex/utils/types.py +60 -16
  171. reflex/vars/__init__.py +2 -0
  172. reflex/vars/base.py +127 -72
  173. reflex/vars/object.py +5 -1
  174. reflex/vars/sequence.py +15 -3
  175. {reflex-0.6.2a2.dist-info → reflex-0.6.3.dist-info}/METADATA +3 -3
  176. {reflex-0.6.2a2.dist-info → reflex-0.6.3.dist-info}/RECORD +179 -177
  177. {reflex-0.6.2a2.dist-info → reflex-0.6.3.dist-info}/LICENSE +0 -0
  178. {reflex-0.6.2a2.dist-info → reflex-0.6.3.dist-info}/WHEEL +0 -0
  179. {reflex-0.6.2a2.dist-info → reflex-0.6.3.dist-info}/entry_points.txt +0 -0
@@ -4,11 +4,11 @@
4
4
  # This file was generated by `reflex/utils/pyi_generator.py`!
5
5
  # ------------------------------------------------------
6
6
  from enum import Enum
7
- from typing import Any, Callable, Dict, List, Literal, Optional, Union, overload
7
+ from typing import Any, Dict, List, Literal, Optional, Union, overload
8
8
 
9
9
  from reflex.base import Base
10
10
  from reflex.components.component import NoSSRComponent
11
- from reflex.event import EventHandler, EventSpec
11
+ from reflex.event import EventType
12
12
  from reflex.style import Style
13
13
  from reflex.utils.imports import ImportDict
14
14
  from reflex.utils.serializers import serializer
@@ -135,87 +135,37 @@ class DataEditor(NoSSRComponent):
135
135
  class_name: Optional[Any] = None,
136
136
  autofocus: Optional[bool] = None,
137
137
  custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
138
- on_blur: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
139
- on_cell_activated: Optional[
140
- Union[EventHandler, EventSpec, list, Callable, Var]
141
- ] = None,
142
- on_cell_clicked: Optional[
143
- Union[EventHandler, EventSpec, list, Callable, Var]
144
- ] = None,
145
- on_cell_context_menu: Optional[
146
- Union[EventHandler, EventSpec, list, Callable, Var]
147
- ] = None,
148
- on_cell_edited: Optional[
149
- Union[EventHandler, EventSpec, list, Callable, Var]
150
- ] = None,
151
- on_click: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
152
- on_column_resize: Optional[
153
- Union[EventHandler, EventSpec, list, Callable, Var]
154
- ] = None,
155
- on_context_menu: Optional[
156
- Union[EventHandler, EventSpec, list, Callable, Var]
157
- ] = None,
158
- on_delete: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
159
- on_double_click: Optional[
160
- Union[EventHandler, EventSpec, list, Callable, Var]
161
- ] = None,
162
- on_finished_editing: Optional[
163
- Union[EventHandler, EventSpec, list, Callable, Var]
164
- ] = None,
165
- on_focus: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
166
- on_group_header_clicked: Optional[
167
- Union[EventHandler, EventSpec, list, Callable, Var]
168
- ] = None,
169
- on_group_header_context_menu: Optional[
170
- Union[EventHandler, EventSpec, list, Callable, Var]
171
- ] = None,
172
- on_group_header_renamed: Optional[
173
- Union[EventHandler, EventSpec, list, Callable, Var]
174
- ] = None,
175
- on_header_clicked: Optional[
176
- Union[EventHandler, EventSpec, list, Callable, Var]
177
- ] = None,
178
- on_header_context_menu: Optional[
179
- Union[EventHandler, EventSpec, list, Callable, Var]
180
- ] = None,
181
- on_header_menu_click: Optional[
182
- Union[EventHandler, EventSpec, list, Callable, Var]
183
- ] = None,
184
- on_item_hovered: Optional[
185
- Union[EventHandler, EventSpec, list, Callable, Var]
186
- ] = None,
187
- on_mount: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
188
- on_mouse_down: Optional[
189
- Union[EventHandler, EventSpec, list, Callable, Var]
190
- ] = None,
191
- on_mouse_enter: Optional[
192
- Union[EventHandler, EventSpec, list, Callable, Var]
193
- ] = None,
194
- on_mouse_leave: Optional[
195
- Union[EventHandler, EventSpec, list, Callable, Var]
196
- ] = None,
197
- on_mouse_move: Optional[
198
- Union[EventHandler, EventSpec, list, Callable, Var]
199
- ] = None,
200
- on_mouse_out: Optional[
201
- Union[EventHandler, EventSpec, list, Callable, Var]
202
- ] = None,
203
- on_mouse_over: Optional[
204
- Union[EventHandler, EventSpec, list, Callable, Var]
205
- ] = None,
206
- on_mouse_up: Optional[
207
- Union[EventHandler, EventSpec, list, Callable, Var]
208
- ] = None,
209
- on_row_appended: Optional[
210
- Union[EventHandler, EventSpec, list, Callable, Var]
211
- ] = None,
212
- on_scroll: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
213
- on_selection_cleared: Optional[
214
- Union[EventHandler, EventSpec, list, Callable, Var]
215
- ] = None,
216
- on_unmount: Optional[
217
- Union[EventHandler, EventSpec, list, Callable, Var]
218
- ] = None,
138
+ on_blur: Optional[EventType[[]]] = None,
139
+ on_cell_activated: Optional[EventType] = None,
140
+ on_cell_clicked: Optional[EventType] = None,
141
+ on_cell_context_menu: Optional[EventType] = None,
142
+ on_cell_edited: Optional[EventType] = None,
143
+ on_click: Optional[EventType[[]]] = None,
144
+ on_column_resize: Optional[EventType] = None,
145
+ on_context_menu: Optional[EventType[[]]] = None,
146
+ on_delete: Optional[EventType] = None,
147
+ on_double_click: Optional[EventType[[]]] = None,
148
+ on_finished_editing: Optional[EventType] = None,
149
+ on_focus: Optional[EventType[[]]] = None,
150
+ on_group_header_clicked: Optional[EventType] = None,
151
+ on_group_header_context_menu: Optional[EventType] = None,
152
+ on_group_header_renamed: Optional[EventType] = None,
153
+ on_header_clicked: Optional[EventType] = None,
154
+ on_header_context_menu: Optional[EventType] = None,
155
+ on_header_menu_click: Optional[EventType] = None,
156
+ on_item_hovered: Optional[EventType] = None,
157
+ on_mount: Optional[EventType[[]]] = None,
158
+ on_mouse_down: Optional[EventType[[]]] = None,
159
+ on_mouse_enter: Optional[EventType[[]]] = None,
160
+ on_mouse_leave: Optional[EventType[[]]] = None,
161
+ on_mouse_move: Optional[EventType[[]]] = None,
162
+ on_mouse_out: Optional[EventType[[]]] = None,
163
+ on_mouse_over: Optional[EventType[[]]] = None,
164
+ on_mouse_up: Optional[EventType[[]]] = None,
165
+ on_row_appended: Optional[EventType[[]]] = None,
166
+ on_scroll: Optional[EventType[[]]] = None,
167
+ on_selection_cleared: Optional[EventType[[]]] = None,
168
+ on_unmount: Optional[EventType[[]]] = None,
219
169
  **props,
220
170
  ) -> "DataEditor":
221
171
  """Create the DataEditor component.
@@ -1,6 +1,6 @@
1
1
  """Components that are dynamically generated on the backend."""
2
2
 
3
- from typing import TYPE_CHECKING
3
+ from typing import TYPE_CHECKING, Union
4
4
 
5
5
  from reflex import constants
6
6
  from reflex.utils import imports
@@ -26,14 +26,10 @@ def get_cdn_url(lib: str) -> str:
26
26
  return f"https://cdn.jsdelivr.net/npm/{lib}" + "/+esm"
27
27
 
28
28
 
29
- bundled_libraries = {
30
- "react",
31
- "@radix-ui/themes",
32
- "@emotion/react",
33
- }
29
+ bundled_libraries = {"react", "@radix-ui/themes", "@emotion/react", "next/link"}
34
30
 
35
31
 
36
- def bundle_library(component: "Component"):
32
+ def bundle_library(component: Union["Component", str]):
37
33
  """Bundle a library with the component.
38
34
 
39
35
  Args:
@@ -42,6 +38,9 @@ def bundle_library(component: "Component"):
42
38
  Raises:
43
39
  DynamicComponentMissingLibrary: Raised when a dynamic component is missing a library.
44
40
  """
41
+ if isinstance(component, str):
42
+ bundled_libraries.add(component)
43
+ return
45
44
  if component.library is None:
46
45
  raise DynamicComponentMissingLibrary("Component must have a library to bundle.")
47
46
  bundled_libraries.add(format_library_name(component.library))
@@ -3,6 +3,7 @@
3
3
  # This file was generated by `reflex/utils/pyi_generator.py`!
4
4
  # ------------------------------------------------------
5
5
 
6
+ from . import elements as elements
6
7
  from .elements.forms import Button as Button
7
8
  from .elements.forms import Fieldset as Fieldset
8
9
  from .elements.forms import Form as Form
@@ -3,10 +3,10 @@
3
3
  # ------------------- DO NOT EDIT ----------------------
4
4
  # This file was generated by `reflex/utils/pyi_generator.py`!
5
5
  # ------------------------------------------------------
6
- from typing import Any, Callable, Dict, Optional, Union, overload
6
+ from typing import Any, Dict, Optional, Union, overload
7
7
 
8
8
  from reflex.components.component import Component
9
- from reflex.event import EventHandler, EventSpec
9
+ from reflex.event import EventType
10
10
  from reflex.style import Style
11
11
  from reflex.vars.base import Var
12
12
 
@@ -22,41 +22,21 @@ class Element(Component):
22
22
  class_name: Optional[Any] = None,
23
23
  autofocus: Optional[bool] = None,
24
24
  custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
25
- on_blur: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
26
- on_click: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
27
- on_context_menu: Optional[
28
- Union[EventHandler, EventSpec, list, Callable, Var]
29
- ] = None,
30
- on_double_click: Optional[
31
- Union[EventHandler, EventSpec, list, Callable, Var]
32
- ] = None,
33
- on_focus: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
34
- on_mount: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
35
- on_mouse_down: Optional[
36
- Union[EventHandler, EventSpec, list, Callable, Var]
37
- ] = None,
38
- on_mouse_enter: Optional[
39
- Union[EventHandler, EventSpec, list, Callable, Var]
40
- ] = None,
41
- on_mouse_leave: Optional[
42
- Union[EventHandler, EventSpec, list, Callable, Var]
43
- ] = None,
44
- on_mouse_move: Optional[
45
- Union[EventHandler, EventSpec, list, Callable, Var]
46
- ] = None,
47
- on_mouse_out: Optional[
48
- Union[EventHandler, EventSpec, list, Callable, Var]
49
- ] = None,
50
- on_mouse_over: Optional[
51
- Union[EventHandler, EventSpec, list, Callable, Var]
52
- ] = None,
53
- on_mouse_up: Optional[
54
- Union[EventHandler, EventSpec, list, Callable, Var]
55
- ] = None,
56
- on_scroll: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
57
- on_unmount: Optional[
58
- Union[EventHandler, EventSpec, list, Callable, Var]
59
- ] = None,
25
+ on_blur: Optional[EventType[[]]] = None,
26
+ on_click: Optional[EventType[[]]] = None,
27
+ on_context_menu: Optional[EventType[[]]] = None,
28
+ on_double_click: Optional[EventType[[]]] = None,
29
+ on_focus: Optional[EventType[[]]] = None,
30
+ on_mount: Optional[EventType[[]]] = None,
31
+ on_mouse_down: Optional[EventType[[]]] = None,
32
+ on_mouse_enter: Optional[EventType[[]]] = None,
33
+ on_mouse_leave: Optional[EventType[[]]] = None,
34
+ on_mouse_move: Optional[EventType[[]]] = None,
35
+ on_mouse_out: Optional[EventType[[]]] = None,
36
+ on_mouse_over: Optional[EventType[[]]] = None,
37
+ on_mouse_up: Optional[EventType[[]]] = None,
38
+ on_scroll: Optional[EventType[[]]] = None,
39
+ on_unmount: Optional[EventType[[]]] = None,
60
40
  **props,
61
41
  ) -> "Element":
62
42
  """Create the component.
@@ -3,10 +3,10 @@
3
3
  # ------------------- DO NOT EDIT ----------------------
4
4
  # This file was generated by `reflex/utils/pyi_generator.py`!
5
5
  # ------------------------------------------------------
6
- from typing import Any, Callable, Dict, Optional, Union, overload
6
+ from typing import Any, Dict, Optional, Union, overload
7
7
 
8
8
  from reflex.components.el.element import Element
9
- from reflex.event import EventHandler, EventSpec
9
+ from reflex.event import EventType
10
10
  from reflex.style import Style
11
11
  from reflex.vars.base import Var
12
12
 
@@ -46,41 +46,21 @@ class BaseHTML(Element):
46
46
  class_name: Optional[Any] = None,
47
47
  autofocus: Optional[bool] = None,
48
48
  custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
49
- on_blur: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
50
- on_click: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
51
- on_context_menu: Optional[
52
- Union[EventHandler, EventSpec, list, Callable, Var]
53
- ] = None,
54
- on_double_click: Optional[
55
- Union[EventHandler, EventSpec, list, Callable, Var]
56
- ] = None,
57
- on_focus: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
58
- on_mount: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
59
- on_mouse_down: Optional[
60
- Union[EventHandler, EventSpec, list, Callable, Var]
61
- ] = None,
62
- on_mouse_enter: Optional[
63
- Union[EventHandler, EventSpec, list, Callable, Var]
64
- ] = None,
65
- on_mouse_leave: Optional[
66
- Union[EventHandler, EventSpec, list, Callable, Var]
67
- ] = None,
68
- on_mouse_move: Optional[
69
- Union[EventHandler, EventSpec, list, Callable, Var]
70
- ] = None,
71
- on_mouse_out: Optional[
72
- Union[EventHandler, EventSpec, list, Callable, Var]
73
- ] = None,
74
- on_mouse_over: Optional[
75
- Union[EventHandler, EventSpec, list, Callable, Var]
76
- ] = None,
77
- on_mouse_up: Optional[
78
- Union[EventHandler, EventSpec, list, Callable, Var]
79
- ] = None,
80
- on_scroll: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
81
- on_unmount: Optional[
82
- Union[EventHandler, EventSpec, list, Callable, Var]
83
- ] = None,
49
+ on_blur: Optional[EventType[[]]] = None,
50
+ on_click: Optional[EventType[[]]] = None,
51
+ on_context_menu: Optional[EventType[[]]] = None,
52
+ on_double_click: Optional[EventType[[]]] = None,
53
+ on_focus: Optional[EventType[[]]] = None,
54
+ on_mount: Optional[EventType[[]]] = None,
55
+ on_mouse_down: Optional[EventType[[]]] = None,
56
+ on_mouse_enter: Optional[EventType[[]]] = None,
57
+ on_mouse_leave: Optional[EventType[[]]] = None,
58
+ on_mouse_move: Optional[EventType[[]]] = None,
59
+ on_mouse_out: Optional[EventType[[]]] = None,
60
+ on_mouse_over: Optional[EventType[[]]] = None,
61
+ on_mouse_up: Optional[EventType[[]]] = None,
62
+ on_scroll: Optional[EventType[[]]] = None,
63
+ on_unmount: Optional[EventType[[]]] = None,
84
64
  **props,
85
65
  ) -> "BaseHTML":
86
66
  """Create the component.
@@ -3,14 +3,20 @@
3
3
  from __future__ import annotations
4
4
 
5
5
  from hashlib import md5
6
- from typing import Any, Dict, Iterator, Set, Union
6
+ from typing import Any, Dict, Iterator, Set, Tuple, Union
7
7
 
8
8
  from jinja2 import Environment
9
9
 
10
10
  from reflex.components.el.element import Element
11
11
  from reflex.components.tags.tag import Tag
12
12
  from reflex.constants import Dirs, EventTriggers
13
- from reflex.event import EventChain, EventHandler, prevent_default
13
+ from reflex.event import (
14
+ EventChain,
15
+ EventHandler,
16
+ input_event,
17
+ key_event,
18
+ prevent_default,
19
+ )
14
20
  from reflex.utils.imports import ImportDict
15
21
  from reflex.vars import VarData
16
22
  from reflex.vars.base import LiteralVar, Var
@@ -96,6 +102,15 @@ class Fieldset(Element):
96
102
  name: Var[Union[str, int, bool]]
97
103
 
98
104
 
105
+ def on_submit_event_spec() -> Tuple[Var[Dict[str, Any]]]:
106
+ """Event handler spec for the on_submit event.
107
+
108
+ Returns:
109
+ The event handler spec.
110
+ """
111
+ return (FORM_DATA,)
112
+
113
+
99
114
  class Form(BaseHTML):
100
115
  """Display the form element."""
101
116
 
@@ -135,7 +150,7 @@ class Form(BaseHTML):
135
150
  handle_submit_unique_name: Var[str]
136
151
 
137
152
  # Fired when the form is submitted
138
- on_submit: EventHandler[lambda e0: [FORM_DATA]]
153
+ on_submit: EventHandler[on_submit_event_spec]
139
154
 
140
155
  @classmethod
141
156
  def create(cls, *children, **props):
@@ -345,19 +360,19 @@ class Input(BaseHTML):
345
360
  value: Var[Union[str, int, float]]
346
361
 
347
362
  # Fired when the input value changes
348
- on_change: EventHandler[lambda e0: [e0.target.value]]
363
+ on_change: EventHandler[input_event]
349
364
 
350
365
  # Fired when the input gains focus
351
- on_focus: EventHandler[lambda e0: [e0.target.value]]
366
+ on_focus: EventHandler[input_event]
352
367
 
353
368
  # Fired when the input loses focus
354
- on_blur: EventHandler[lambda e0: [e0.target.value]]
369
+ on_blur: EventHandler[input_event]
355
370
 
356
371
  # Fired when a key is pressed down
357
- on_key_down: EventHandler[lambda e0: [e0.key]]
372
+ on_key_down: EventHandler[key_event]
358
373
 
359
374
  # Fired when a key is released
360
- on_key_up: EventHandler[lambda e0: [e0.key]]
375
+ on_key_up: EventHandler[key_event]
361
376
 
362
377
 
363
378
  class Label(BaseHTML):
@@ -496,7 +511,7 @@ class Select(BaseHTML):
496
511
  size: Var[Union[str, int, bool]]
497
512
 
498
513
  # Fired when the select value changes
499
- on_change: EventHandler[lambda e0: [e0.target.value]]
514
+ on_change: EventHandler[input_event]
500
515
 
501
516
 
502
517
  AUTO_HEIGHT_JS = """
@@ -586,19 +601,19 @@ class Textarea(BaseHTML):
586
601
  wrap: Var[Union[str, int, bool]]
587
602
 
588
603
  # Fired when the input value changes
589
- on_change: EventHandler[lambda e0: [e0.target.value]]
604
+ on_change: EventHandler[input_event]
590
605
 
591
606
  # Fired when the input gains focus
592
- on_focus: EventHandler[lambda e0: [e0.target.value]]
607
+ on_focus: EventHandler[input_event]
593
608
 
594
609
  # Fired when the input loses focus
595
- on_blur: EventHandler[lambda e0: [e0.target.value]]
610
+ on_blur: EventHandler[input_event]
596
611
 
597
612
  # Fired when a key is pressed down
598
- on_key_down: EventHandler[lambda e0: [e0.key]]
613
+ on_key_down: EventHandler[key_event]
599
614
 
600
615
  # Fired when a key is released
601
- on_key_up: EventHandler[lambda e0: [e0.key]]
616
+ on_key_up: EventHandler[key_event]
602
617
 
603
618
  def _exclude_props(self) -> list[str]:
604
619
  return super()._exclude_props() + [