reflex 0.6.8a2__py3-none-any.whl → 0.7.0a2__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 (246) hide show
  1. reflex/.templates/jinja/custom_components/pyproject.toml.jinja2 +1 -1
  2. reflex/.templates/jinja/web/pages/_app.js.jinja2 +7 -7
  3. reflex/.templates/jinja/web/pages/utils.js.jinja2 +3 -3
  4. reflex/.templates/web/components/reflex/radix_themes_color_mode_provider.js +1 -4
  5. reflex/.templates/web/utils/state.js +65 -36
  6. reflex/__init__.py +4 -17
  7. reflex/__init__.pyi +1 -2
  8. reflex/app.py +249 -116
  9. reflex/app_mixins/lifespan.py +9 -9
  10. reflex/app_mixins/middleware.py +6 -6
  11. reflex/app_module_for_backend.py +3 -7
  12. reflex/base.py +7 -7
  13. reflex/compiler/compiler.py +8 -0
  14. reflex/compiler/utils.py +35 -6
  15. reflex/components/base/app_wrap.pyi +16 -16
  16. reflex/components/base/bare.py +1 -1
  17. reflex/components/base/body.pyi +16 -16
  18. reflex/components/base/document.pyi +76 -76
  19. reflex/components/base/error_boundary.py +2 -1
  20. reflex/components/base/error_boundary.pyi +19 -22
  21. reflex/components/base/fragment.pyi +16 -16
  22. reflex/components/base/head.pyi +31 -31
  23. reflex/components/base/link.pyi +31 -31
  24. reflex/components/base/meta.py +2 -2
  25. reflex/components/base/meta.pyi +61 -61
  26. reflex/components/base/script.pyi +19 -19
  27. reflex/components/base/strict_mode.py +10 -0
  28. reflex/components/base/strict_mode.pyi +57 -0
  29. reflex/components/component.py +38 -77
  30. reflex/components/core/banner.py +159 -4
  31. reflex/components/core/banner.pyi +162 -76
  32. reflex/components/core/breakpoints.py +3 -1
  33. reflex/components/core/client_side_routing.py +1 -1
  34. reflex/components/core/client_side_routing.pyi +32 -32
  35. reflex/components/core/clipboard.pyi +17 -20
  36. reflex/components/core/cond.py +9 -10
  37. reflex/components/core/debounce.py +1 -1
  38. reflex/components/core/debounce.pyi +17 -17
  39. reflex/components/core/foreach.py +28 -3
  40. reflex/components/core/html.py +1 -1
  41. reflex/components/core/html.pyi +16 -16
  42. reflex/components/core/match.py +5 -5
  43. reflex/components/core/sticky.py +160 -0
  44. reflex/components/core/sticky.pyi +449 -0
  45. reflex/components/core/upload.py +2 -2
  46. reflex/components/core/upload.pyi +80 -88
  47. reflex/components/datadisplay/code.py +5 -14
  48. reflex/components/datadisplay/code.pyi +31 -31
  49. reflex/components/datadisplay/dataeditor.py +7 -4
  50. reflex/components/datadisplay/dataeditor.pyi +40 -54
  51. reflex/components/datadisplay/logo.py +13 -8
  52. reflex/components/datadisplay/shiki_code_block.py +14 -9
  53. reflex/components/datadisplay/shiki_code_block.pyi +46 -46
  54. reflex/components/dynamic.py +22 -3
  55. reflex/components/el/constants/reflex.py +1 -1
  56. reflex/components/el/element.py +1 -1
  57. reflex/components/el/element.pyi +16 -16
  58. reflex/components/el/elements/base.pyi +16 -16
  59. reflex/components/el/elements/forms.py +4 -4
  60. reflex/components/el/elements/forms.pyi +224 -258
  61. reflex/components/el/elements/inline.pyi +421 -421
  62. reflex/components/el/elements/media.pyi +376 -376
  63. reflex/components/el/elements/metadata.pyi +91 -91
  64. reflex/components/el/elements/other.pyi +106 -106
  65. reflex/components/el/elements/scripts.pyi +46 -46
  66. reflex/components/el/elements/sectioning.pyi +226 -226
  67. reflex/components/el/elements/tables.pyi +151 -151
  68. reflex/components/el/elements/typography.pyi +226 -226
  69. reflex/components/gridjs/datatable.pyi +31 -31
  70. reflex/components/lucide/icon.py +46 -8
  71. reflex/components/lucide/icon.pyi +85 -31
  72. reflex/components/markdown/markdown.py +10 -8
  73. reflex/components/markdown/markdown.pyi +16 -16
  74. reflex/components/moment/moment.py +2 -2
  75. reflex/components/moment/moment.pyi +17 -19
  76. reflex/components/next/base.pyi +16 -16
  77. reflex/components/next/image.py +16 -4
  78. reflex/components/next/image.pyi +22 -20
  79. reflex/components/next/link.py +1 -1
  80. reflex/components/next/link.pyi +16 -16
  81. reflex/components/next/video.pyi +16 -16
  82. reflex/components/plotly/plotly.py +5 -5
  83. reflex/components/plotly/plotly.pyi +34 -44
  84. reflex/components/props.py +3 -3
  85. reflex/components/radix/__init__.pyi +1 -1
  86. reflex/components/radix/primitives/accordion.py +9 -5
  87. reflex/components/radix/primitives/accordion.pyi +110 -108
  88. reflex/components/radix/primitives/base.pyi +31 -31
  89. reflex/components/radix/primitives/drawer.py +5 -2
  90. reflex/components/radix/primitives/drawer.pyi +179 -187
  91. reflex/components/radix/primitives/form.pyi +160 -172
  92. reflex/components/radix/primitives/progress.py +1 -1
  93. reflex/components/radix/primitives/progress.pyi +76 -76
  94. reflex/components/radix/primitives/slider.py +1 -1
  95. reflex/components/radix/primitives/slider.pyi +78 -82
  96. reflex/components/radix/themes/base.pyi +121 -121
  97. reflex/components/radix/themes/color_mode.py +11 -9
  98. reflex/components/radix/themes/color_mode.pyi +47 -49
  99. reflex/components/radix/themes/components/alert_dialog.py +3 -0
  100. reflex/components/radix/themes/components/alert_dialog.pyi +110 -112
  101. reflex/components/radix/themes/components/aspect_ratio.pyi +16 -16
  102. reflex/components/radix/themes/components/avatar.pyi +16 -16
  103. reflex/components/radix/themes/components/badge.pyi +16 -16
  104. reflex/components/radix/themes/components/button.pyi +16 -16
  105. reflex/components/radix/themes/components/callout.pyi +76 -76
  106. reflex/components/radix/themes/components/card.py +1 -1
  107. reflex/components/radix/themes/components/card.pyi +17 -17
  108. reflex/components/radix/themes/components/checkbox.pyi +49 -55
  109. reflex/components/radix/themes/components/checkbox_cards.pyi +31 -31
  110. reflex/components/radix/themes/components/checkbox_group.pyi +31 -31
  111. reflex/components/radix/themes/components/context_menu.py +5 -0
  112. reflex/components/radix/themes/components/context_menu.pyi +149 -155
  113. reflex/components/radix/themes/components/data_list.pyi +61 -61
  114. reflex/components/radix/themes/components/dialog.py +3 -0
  115. reflex/components/radix/themes/components/dialog.pyi +113 -117
  116. reflex/components/radix/themes/components/dropdown_menu.py +5 -0
  117. reflex/components/radix/themes/components/dropdown_menu.pyi +133 -137
  118. reflex/components/radix/themes/components/hover_card.py +3 -0
  119. reflex/components/radix/themes/components/hover_card.pyi +63 -67
  120. reflex/components/radix/themes/components/icon_button.py +2 -2
  121. reflex/components/radix/themes/components/icon_button.pyi +17 -16
  122. reflex/components/radix/themes/components/inset.pyi +16 -16
  123. reflex/components/radix/themes/components/popover.py +3 -0
  124. reflex/components/radix/themes/components/popover.pyi +68 -70
  125. reflex/components/radix/themes/components/progress.pyi +16 -16
  126. reflex/components/radix/themes/components/radio.pyi +16 -16
  127. reflex/components/radix/themes/components/radio_cards.py +2 -0
  128. reflex/components/radix/themes/components/radio_cards.pyi +32 -34
  129. reflex/components/radix/themes/components/radio_group.py +1 -1
  130. reflex/components/radix/themes/components/radio_group.pyi +62 -64
  131. reflex/components/radix/themes/components/scroll_area.pyi +16 -16
  132. reflex/components/radix/themes/components/segmented_control.pyi +32 -35
  133. reflex/components/radix/themes/components/select.py +4 -0
  134. reflex/components/radix/themes/components/select.pyi +145 -157
  135. reflex/components/radix/themes/components/separator.pyi +16 -16
  136. reflex/components/radix/themes/components/skeleton.py +3 -0
  137. reflex/components/radix/themes/components/skeleton.pyi +16 -16
  138. reflex/components/radix/themes/components/slider.pyi +22 -28
  139. reflex/components/radix/themes/components/spinner.pyi +16 -16
  140. reflex/components/radix/themes/components/switch.pyi +17 -19
  141. reflex/components/radix/themes/components/table.pyi +106 -106
  142. reflex/components/radix/themes/components/tabs.py +3 -0
  143. reflex/components/radix/themes/components/tabs.pyi +78 -82
  144. reflex/components/radix/themes/components/text_area.py +12 -0
  145. reflex/components/radix/themes/components/text_area.pyi +21 -33
  146. reflex/components/radix/themes/components/text_field.py +1 -1
  147. reflex/components/radix/themes/components/text_field.pyi +52 -80
  148. reflex/components/radix/themes/components/tooltip.py +6 -1
  149. reflex/components/radix/themes/components/tooltip.pyi +20 -21
  150. reflex/components/radix/themes/layout/__init__.pyi +1 -1
  151. reflex/components/radix/themes/layout/base.pyi +16 -16
  152. reflex/components/radix/themes/layout/box.pyi +16 -16
  153. reflex/components/radix/themes/layout/center.pyi +16 -16
  154. reflex/components/radix/themes/layout/container.pyi +16 -16
  155. reflex/components/radix/themes/layout/flex.pyi +16 -16
  156. reflex/components/radix/themes/layout/grid.pyi +16 -16
  157. reflex/components/radix/themes/layout/list.py +2 -2
  158. reflex/components/radix/themes/layout/list.pyi +76 -76
  159. reflex/components/radix/themes/layout/section.pyi +16 -16
  160. reflex/components/radix/themes/layout/spacer.pyi +16 -16
  161. reflex/components/radix/themes/layout/stack.py +2 -2
  162. reflex/components/radix/themes/layout/stack.pyi +46 -46
  163. reflex/components/radix/themes/typography/blockquote.pyi +16 -16
  164. reflex/components/radix/themes/typography/code.pyi +16 -16
  165. reflex/components/radix/themes/typography/heading.pyi +16 -16
  166. reflex/components/radix/themes/typography/link.py +1 -1
  167. reflex/components/radix/themes/typography/link.pyi +16 -16
  168. reflex/components/radix/themes/typography/text.py +2 -2
  169. reflex/components/radix/themes/typography/text.pyi +106 -106
  170. reflex/components/react_player/audio.pyi +33 -39
  171. reflex/components/react_player/react_player.py +1 -1
  172. reflex/components/react_player/react_player.pyi +32 -38
  173. reflex/components/react_player/video.pyi +33 -39
  174. reflex/components/recharts/__init__.py +2 -0
  175. reflex/components/recharts/__init__.pyi +2 -0
  176. reflex/components/recharts/cartesian.pyi +282 -282
  177. reflex/components/recharts/charts.py +15 -15
  178. reflex/components/recharts/charts.pyi +164 -164
  179. reflex/components/recharts/general.py +19 -4
  180. reflex/components/recharts/general.pyi +132 -81
  181. reflex/components/recharts/polar.py +2 -2
  182. reflex/components/recharts/polar.pyi +55 -55
  183. reflex/components/recharts/recharts.py +4 -4
  184. reflex/components/recharts/recharts.pyi +31 -31
  185. reflex/components/sonner/toast.py +15 -13
  186. reflex/components/sonner/toast.pyi +22 -22
  187. reflex/components/suneditor/editor.py +6 -4
  188. reflex/components/suneditor/editor.pyi +26 -40
  189. reflex/components/tags/iter_tag.py +3 -3
  190. reflex/components/tags/tag.py +25 -3
  191. reflex/config.py +48 -15
  192. reflex/constants/__init__.py +1 -0
  193. reflex/constants/base.py +4 -1
  194. reflex/constants/compiler.py +5 -2
  195. reflex/constants/config.py +8 -1
  196. reflex/constants/installer.py +9 -9
  197. reflex/constants/style.py +1 -1
  198. reflex/custom_components/custom_components.py +9 -7
  199. reflex/event.py +215 -208
  200. reflex/experimental/__init__.py +19 -11
  201. reflex/experimental/client_state.py +53 -28
  202. reflex/experimental/hooks.py +5 -5
  203. reflex/experimental/layout.py +8 -5
  204. reflex/experimental/layout.pyi +79 -83
  205. reflex/experimental/misc.py +3 -3
  206. reflex/istate/wrappers.py +1 -1
  207. reflex/middleware/hydrate_middleware.py +2 -2
  208. reflex/model.py +11 -6
  209. reflex/page.py +5 -5
  210. reflex/reflex.py +90 -19
  211. reflex/route.py +1 -1
  212. reflex/state.py +358 -401
  213. reflex/style.py +27 -3
  214. reflex/testing.py +29 -23
  215. reflex/utils/build.py +6 -2
  216. reflex/utils/codespaces.py +1 -4
  217. reflex/utils/compat.py +6 -5
  218. reflex/utils/console.py +52 -16
  219. reflex/utils/exceptions.py +89 -26
  220. reflex/utils/exec.py +69 -74
  221. reflex/utils/export.py +6 -1
  222. reflex/utils/format.py +8 -40
  223. reflex/utils/imports.py +2 -2
  224. reflex/utils/lazy_loader.py +7 -1
  225. reflex/utils/path_ops.py +28 -14
  226. reflex/utils/prerequisites.py +326 -67
  227. reflex/utils/processes.py +45 -32
  228. reflex/utils/pyi_generator.py +39 -33
  229. reflex/utils/registry.py +4 -4
  230. reflex/utils/serializers.py +1 -1
  231. reflex/utils/telemetry.py +5 -4
  232. reflex/utils/types.py +42 -18
  233. reflex/vars/base.py +656 -333
  234. reflex/vars/datetime.py +6 -7
  235. reflex/vars/dep_tracking.py +344 -0
  236. reflex/vars/function.py +11 -5
  237. reflex/vars/number.py +31 -43
  238. reflex/vars/object.py +63 -62
  239. reflex/vars/sequence.py +79 -67
  240. {reflex-0.6.8a2.dist-info → reflex-0.7.0a2.dist-info}/METADATA +7 -8
  241. reflex-0.7.0a2.dist-info/RECORD +401 -0
  242. {reflex-0.6.8a2.dist-info → reflex-0.7.0a2.dist-info}/WHEEL +1 -1
  243. reflex/experimental/assets.py +0 -37
  244. reflex-0.6.8a2.dist-info/RECORD +0 -397
  245. {reflex-0.6.8a2.dist-info → reflex-0.7.0a2.dist-info}/LICENSE +0 -0
  246. {reflex-0.6.8a2.dist-info → reflex-0.7.0a2.dist-info}/entry_points.txt +0 -0
@@ -9,7 +9,7 @@ from reflex.base import Base
9
9
  from reflex.components.component import Component, ComponentNamespace
10
10
  from reflex.components.markdown.markdown import MarkdownComponentMap
11
11
  from reflex.components.props import NoExtrasAllowedProps
12
- from reflex.event import BASE_STATE, EventType
12
+ from reflex.event import EventType
13
13
  from reflex.style import Style
14
14
  from reflex.vars.base import Var
15
15
  from reflex.vars.function import FunctionStringVar
@@ -928,21 +928,21 @@ class ShikiCodeBlock(Component, MarkdownComponentMap):
928
928
  class_name: Optional[Any] = None,
929
929
  autofocus: Optional[bool] = None,
930
930
  custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None,
931
- on_blur: Optional[EventType[[], BASE_STATE]] = None,
932
- on_click: Optional[EventType[[], BASE_STATE]] = None,
933
- on_context_menu: Optional[EventType[[], BASE_STATE]] = None,
934
- on_double_click: Optional[EventType[[], BASE_STATE]] = None,
935
- on_focus: Optional[EventType[[], BASE_STATE]] = None,
936
- on_mount: Optional[EventType[[], BASE_STATE]] = None,
937
- on_mouse_down: Optional[EventType[[], BASE_STATE]] = None,
938
- on_mouse_enter: Optional[EventType[[], BASE_STATE]] = None,
939
- on_mouse_leave: Optional[EventType[[], BASE_STATE]] = None,
940
- on_mouse_move: Optional[EventType[[], BASE_STATE]] = None,
941
- on_mouse_out: Optional[EventType[[], BASE_STATE]] = None,
942
- on_mouse_over: Optional[EventType[[], BASE_STATE]] = None,
943
- on_mouse_up: Optional[EventType[[], BASE_STATE]] = None,
944
- on_scroll: Optional[EventType[[], BASE_STATE]] = None,
945
- on_unmount: Optional[EventType[[], BASE_STATE]] = None,
931
+ on_blur: Optional[EventType[()]] = None,
932
+ on_click: Optional[EventType[()]] = None,
933
+ on_context_menu: Optional[EventType[()]] = None,
934
+ on_double_click: Optional[EventType[()]] = None,
935
+ on_focus: Optional[EventType[()]] = None,
936
+ on_mount: Optional[EventType[()]] = None,
937
+ on_mouse_down: Optional[EventType[()]] = None,
938
+ on_mouse_enter: Optional[EventType[()]] = None,
939
+ on_mouse_leave: Optional[EventType[()]] = None,
940
+ on_mouse_move: Optional[EventType[()]] = None,
941
+ on_mouse_out: Optional[EventType[()]] = None,
942
+ on_mouse_over: Optional[EventType[()]] = None,
943
+ on_mouse_up: Optional[EventType[()]] = None,
944
+ on_scroll: Optional[EventType[()]] = None,
945
+ on_unmount: Optional[EventType[()]] = None,
946
946
  **props,
947
947
  ) -> "ShikiCodeBlock":
948
948
  """Create a code block component using [shiki syntax highlighter](https://shiki.matsu.io/).
@@ -1555,21 +1555,21 @@ class ShikiHighLevelCodeBlock(ShikiCodeBlock):
1555
1555
  class_name: Optional[Any] = None,
1556
1556
  autofocus: Optional[bool] = None,
1557
1557
  custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None,
1558
- on_blur: Optional[EventType[[], BASE_STATE]] = None,
1559
- on_click: Optional[EventType[[], BASE_STATE]] = None,
1560
- on_context_menu: Optional[EventType[[], BASE_STATE]] = None,
1561
- on_double_click: Optional[EventType[[], BASE_STATE]] = None,
1562
- on_focus: Optional[EventType[[], BASE_STATE]] = None,
1563
- on_mount: Optional[EventType[[], BASE_STATE]] = None,
1564
- on_mouse_down: Optional[EventType[[], BASE_STATE]] = None,
1565
- on_mouse_enter: Optional[EventType[[], BASE_STATE]] = None,
1566
- on_mouse_leave: Optional[EventType[[], BASE_STATE]] = None,
1567
- on_mouse_move: Optional[EventType[[], BASE_STATE]] = None,
1568
- on_mouse_out: Optional[EventType[[], BASE_STATE]] = None,
1569
- on_mouse_over: Optional[EventType[[], BASE_STATE]] = None,
1570
- on_mouse_up: Optional[EventType[[], BASE_STATE]] = None,
1571
- on_scroll: Optional[EventType[[], BASE_STATE]] = None,
1572
- on_unmount: Optional[EventType[[], BASE_STATE]] = None,
1558
+ on_blur: Optional[EventType[()]] = None,
1559
+ on_click: Optional[EventType[()]] = None,
1560
+ on_context_menu: Optional[EventType[()]] = None,
1561
+ on_double_click: Optional[EventType[()]] = None,
1562
+ on_focus: Optional[EventType[()]] = None,
1563
+ on_mount: Optional[EventType[()]] = None,
1564
+ on_mouse_down: Optional[EventType[()]] = None,
1565
+ on_mouse_enter: Optional[EventType[()]] = None,
1566
+ on_mouse_leave: Optional[EventType[()]] = None,
1567
+ on_mouse_move: Optional[EventType[()]] = None,
1568
+ on_mouse_out: Optional[EventType[()]] = None,
1569
+ on_mouse_over: Optional[EventType[()]] = None,
1570
+ on_mouse_up: Optional[EventType[()]] = None,
1571
+ on_scroll: Optional[EventType[()]] = None,
1572
+ on_unmount: Optional[EventType[()]] = None,
1573
1573
  **props,
1574
1574
  ) -> "ShikiHighLevelCodeBlock":
1575
1575
  """Create a code block component using [shiki syntax highlighter](https://shiki.matsu.io/).
@@ -2185,21 +2185,21 @@ class CodeblockNamespace(ComponentNamespace):
2185
2185
  class_name: Optional[Any] = None,
2186
2186
  autofocus: Optional[bool] = None,
2187
2187
  custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None,
2188
- on_blur: Optional[EventType[[], BASE_STATE]] = None,
2189
- on_click: Optional[EventType[[], BASE_STATE]] = None,
2190
- on_context_menu: Optional[EventType[[], BASE_STATE]] = None,
2191
- on_double_click: Optional[EventType[[], BASE_STATE]] = None,
2192
- on_focus: Optional[EventType[[], BASE_STATE]] = None,
2193
- on_mount: Optional[EventType[[], BASE_STATE]] = None,
2194
- on_mouse_down: Optional[EventType[[], BASE_STATE]] = None,
2195
- on_mouse_enter: Optional[EventType[[], BASE_STATE]] = None,
2196
- on_mouse_leave: Optional[EventType[[], BASE_STATE]] = None,
2197
- on_mouse_move: Optional[EventType[[], BASE_STATE]] = None,
2198
- on_mouse_out: Optional[EventType[[], BASE_STATE]] = None,
2199
- on_mouse_over: Optional[EventType[[], BASE_STATE]] = None,
2200
- on_mouse_up: Optional[EventType[[], BASE_STATE]] = None,
2201
- on_scroll: Optional[EventType[[], BASE_STATE]] = None,
2202
- on_unmount: Optional[EventType[[], BASE_STATE]] = None,
2188
+ on_blur: Optional[EventType[()]] = None,
2189
+ on_click: Optional[EventType[()]] = None,
2190
+ on_context_menu: Optional[EventType[()]] = None,
2191
+ on_double_click: Optional[EventType[()]] = None,
2192
+ on_focus: Optional[EventType[()]] = None,
2193
+ on_mount: Optional[EventType[()]] = None,
2194
+ on_mouse_down: Optional[EventType[()]] = None,
2195
+ on_mouse_enter: Optional[EventType[()]] = None,
2196
+ on_mouse_leave: Optional[EventType[()]] = None,
2197
+ on_mouse_move: Optional[EventType[()]] = None,
2198
+ on_mouse_out: Optional[EventType[()]] = None,
2199
+ on_mouse_over: Optional[EventType[()]] = None,
2200
+ on_mouse_up: Optional[EventType[()]] = None,
2201
+ on_scroll: Optional[EventType[()]] = None,
2202
+ on_unmount: Optional[EventType[()]] = None,
2203
2203
  **props,
2204
2204
  ) -> "ShikiHighLevelCodeBlock":
2205
2205
  """Create a code block component using [shiki syntax highlighter](https://shiki.matsu.io/).
@@ -4,7 +4,7 @@ from typing import TYPE_CHECKING, Union
4
4
 
5
5
  from reflex import constants
6
6
  from reflex.utils import imports
7
- from reflex.utils.exceptions import DynamicComponentMissingLibrary
7
+ from reflex.utils.exceptions import DynamicComponentMissingLibraryError
8
8
  from reflex.utils.format import format_library_name
9
9
  from reflex.utils.serializers import serializer
10
10
  from reflex.vars import Var, get_unique_variable_name
@@ -36,13 +36,15 @@ def bundle_library(component: Union["Component", str]):
36
36
  component: The component to bundle the library with.
37
37
 
38
38
  Raises:
39
- DynamicComponentMissingLibrary: Raised when a dynamic component is missing a library.
39
+ DynamicComponentMissingLibraryError: Raised when a dynamic component is missing a library.
40
40
  """
41
41
  if isinstance(component, str):
42
42
  bundled_libraries.add(component)
43
43
  return
44
44
  if component.library is None:
45
- raise DynamicComponentMissingLibrary("Component must have a library to bundle.")
45
+ raise DynamicComponentMissingLibraryError(
46
+ "Component must have a library to bundle."
47
+ )
46
48
  bundled_libraries.add(format_library_name(component.library))
47
49
 
48
50
 
@@ -136,6 +138,23 @@ def load_dynamic_serializer():
136
138
 
137
139
  module_code_lines.insert(0, "const React = window.__reflex.react;")
138
140
 
141
+ function_line = next(
142
+ index
143
+ for index, line in enumerate(module_code_lines)
144
+ if line.startswith("export default function")
145
+ )
146
+
147
+ module_code_lines = [
148
+ line
149
+ for _, line in sorted(
150
+ enumerate(module_code_lines),
151
+ key=lambda x: (
152
+ not (x[1].startswith("import ") and x[0] < function_line),
153
+ x[0],
154
+ ),
155
+ )
156
+ ]
157
+
139
158
  return "\n".join(
140
159
  [
141
160
  "//__reflex_evaluate",
@@ -48,4 +48,4 @@ PROP_TO_ELEMENTS = {
48
48
  ELEMENT_TO_PROPS = defaultdict(list)
49
49
  for prop, elements in PROP_TO_ELEMENTS.items():
50
50
  for el in elements:
51
- ELEMENT_TO_PROPS[el].append(prop) # type: ignore
51
+ ELEMENT_TO_PROPS[el].append(prop)
@@ -6,7 +6,7 @@ from reflex.components.component import Component
6
6
  class Element(Component):
7
7
  """The base class for all raw HTML elements."""
8
8
 
9
- def __eq__(self, other):
9
+ def __eq__(self, other: object):
10
10
  """Two elements are equal if they have the same tag.
11
11
 
12
12
  Args:
@@ -6,7 +6,7 @@
6
6
  from typing import Any, Dict, Optional, Union, overload
7
7
 
8
8
  from reflex.components.component import Component
9
- from reflex.event import BASE_STATE, EventType
9
+ from reflex.event import EventType
10
10
  from reflex.style import Style
11
11
  from reflex.vars.base import Var
12
12
 
@@ -22,21 +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, Any]]] = None,
25
- on_blur: Optional[EventType[[], BASE_STATE]] = None,
26
- on_click: Optional[EventType[[], BASE_STATE]] = None,
27
- on_context_menu: Optional[EventType[[], BASE_STATE]] = None,
28
- on_double_click: Optional[EventType[[], BASE_STATE]] = None,
29
- on_focus: Optional[EventType[[], BASE_STATE]] = None,
30
- on_mount: Optional[EventType[[], BASE_STATE]] = None,
31
- on_mouse_down: Optional[EventType[[], BASE_STATE]] = None,
32
- on_mouse_enter: Optional[EventType[[], BASE_STATE]] = None,
33
- on_mouse_leave: Optional[EventType[[], BASE_STATE]] = None,
34
- on_mouse_move: Optional[EventType[[], BASE_STATE]] = None,
35
- on_mouse_out: Optional[EventType[[], BASE_STATE]] = None,
36
- on_mouse_over: Optional[EventType[[], BASE_STATE]] = None,
37
- on_mouse_up: Optional[EventType[[], BASE_STATE]] = None,
38
- on_scroll: Optional[EventType[[], BASE_STATE]] = None,
39
- on_unmount: Optional[EventType[[], BASE_STATE]] = 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,
40
40
  **props,
41
41
  ) -> "Element":
42
42
  """Create the component.
@@ -6,7 +6,7 @@
6
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 BASE_STATE, EventType
9
+ from reflex.event import EventType
10
10
  from reflex.style import Style
11
11
  from reflex.vars.base import Var
12
12
 
@@ -46,21 +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, Any]]] = None,
49
- on_blur: Optional[EventType[[], BASE_STATE]] = None,
50
- on_click: Optional[EventType[[], BASE_STATE]] = None,
51
- on_context_menu: Optional[EventType[[], BASE_STATE]] = None,
52
- on_double_click: Optional[EventType[[], BASE_STATE]] = None,
53
- on_focus: Optional[EventType[[], BASE_STATE]] = None,
54
- on_mount: Optional[EventType[[], BASE_STATE]] = None,
55
- on_mouse_down: Optional[EventType[[], BASE_STATE]] = None,
56
- on_mouse_enter: Optional[EventType[[], BASE_STATE]] = None,
57
- on_mouse_leave: Optional[EventType[[], BASE_STATE]] = None,
58
- on_mouse_move: Optional[EventType[[], BASE_STATE]] = None,
59
- on_mouse_out: Optional[EventType[[], BASE_STATE]] = None,
60
- on_mouse_over: Optional[EventType[[], BASE_STATE]] = None,
61
- on_mouse_up: Optional[EventType[[], BASE_STATE]] = None,
62
- on_scroll: Optional[EventType[[], BASE_STATE]] = None,
63
- on_unmount: Optional[EventType[[], BASE_STATE]] = 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,
64
64
  **props,
65
65
  ) -> "BaseHTML":
66
66
  """Create the component.
@@ -102,7 +102,7 @@ class Fieldset(Element):
102
102
  name: Var[Union[str, int, bool]]
103
103
 
104
104
 
105
- def on_submit_event_spec() -> Tuple[Var[Dict[str, Any]]]:
105
+ def on_submit_event_spec() -> Tuple[Var[dict[str, Any]]]:
106
106
  """Event handler spec for the on_submit event.
107
107
 
108
108
  Returns:
@@ -111,7 +111,7 @@ def on_submit_event_spec() -> Tuple[Var[Dict[str, Any]]]:
111
111
  return (FORM_DATA,)
112
112
 
113
113
 
114
- def on_submit_string_event_spec() -> Tuple[Var[Dict[str, str]]]:
114
+ def on_submit_string_event_spec() -> Tuple[Var[dict[str, str]]]:
115
115
  """Event handler spec for the on_submit event.
116
116
 
117
117
  Returns:
@@ -153,7 +153,7 @@ class Form(BaseHTML):
153
153
  target: Var[Union[str, int, bool]]
154
154
 
155
155
  # If true, the form will be cleared after submit.
156
- reset_on_submit: Var[bool] = False # type: ignore
156
+ reset_on_submit: Var[bool] = Var.create(False)
157
157
 
158
158
  # The name used to make this form's submit handler function unique.
159
159
  handle_submit_unique_name: Var[str]
@@ -405,7 +405,7 @@ class Input(BaseHTML):
405
405
  (value_var := Var.create(value))._var_type
406
406
  ):
407
407
  props["value"] = ternary_operation(
408
- (value_var != Var.create(None)) # pyright: ignore [reportGeneralTypeIssues]
408
+ (value_var != Var.create(None)) # pyright: ignore [reportArgumentType]
409
409
  & (value_var != Var(_js_expr="undefined")),
410
410
  value,
411
411
  Var.create(""),