reflex 0.6.8a2__py3-none-any.whl → 0.7.0__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 (247) 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 +286 -129
  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 +57 -18
  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 +134 -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/__init__.py +29 -2
  83. reflex/components/plotly/plotly.py +240 -5
  84. reflex/components/plotly/plotly.pyi +799 -44
  85. reflex/components/props.py +3 -3
  86. reflex/components/radix/__init__.pyi +1 -1
  87. reflex/components/radix/primitives/accordion.py +9 -5
  88. reflex/components/radix/primitives/accordion.pyi +110 -108
  89. reflex/components/radix/primitives/base.pyi +31 -31
  90. reflex/components/radix/primitives/drawer.py +5 -2
  91. reflex/components/radix/primitives/drawer.pyi +179 -187
  92. reflex/components/radix/primitives/form.pyi +160 -172
  93. reflex/components/radix/primitives/progress.py +1 -1
  94. reflex/components/radix/primitives/progress.pyi +76 -76
  95. reflex/components/radix/primitives/slider.py +1 -1
  96. reflex/components/radix/primitives/slider.pyi +78 -82
  97. reflex/components/radix/themes/base.pyi +121 -121
  98. reflex/components/radix/themes/color_mode.py +11 -9
  99. reflex/components/radix/themes/color_mode.pyi +47 -49
  100. reflex/components/radix/themes/components/alert_dialog.py +3 -0
  101. reflex/components/radix/themes/components/alert_dialog.pyi +110 -112
  102. reflex/components/radix/themes/components/aspect_ratio.pyi +16 -16
  103. reflex/components/radix/themes/components/avatar.pyi +16 -16
  104. reflex/components/radix/themes/components/badge.pyi +16 -16
  105. reflex/components/radix/themes/components/button.pyi +16 -16
  106. reflex/components/radix/themes/components/callout.pyi +76 -76
  107. reflex/components/radix/themes/components/card.py +1 -1
  108. reflex/components/radix/themes/components/card.pyi +17 -17
  109. reflex/components/radix/themes/components/checkbox.pyi +49 -55
  110. reflex/components/radix/themes/components/checkbox_cards.pyi +31 -31
  111. reflex/components/radix/themes/components/checkbox_group.pyi +31 -31
  112. reflex/components/radix/themes/components/context_menu.py +5 -0
  113. reflex/components/radix/themes/components/context_menu.pyi +149 -155
  114. reflex/components/radix/themes/components/data_list.pyi +61 -61
  115. reflex/components/radix/themes/components/dialog.py +3 -0
  116. reflex/components/radix/themes/components/dialog.pyi +113 -117
  117. reflex/components/radix/themes/components/dropdown_menu.py +5 -0
  118. reflex/components/radix/themes/components/dropdown_menu.pyi +133 -137
  119. reflex/components/radix/themes/components/hover_card.py +3 -0
  120. reflex/components/radix/themes/components/hover_card.pyi +63 -67
  121. reflex/components/radix/themes/components/icon_button.py +2 -2
  122. reflex/components/radix/themes/components/icon_button.pyi +17 -16
  123. reflex/components/radix/themes/components/inset.pyi +16 -16
  124. reflex/components/radix/themes/components/popover.py +3 -0
  125. reflex/components/radix/themes/components/popover.pyi +68 -70
  126. reflex/components/radix/themes/components/progress.pyi +16 -16
  127. reflex/components/radix/themes/components/radio.pyi +16 -16
  128. reflex/components/radix/themes/components/radio_cards.py +2 -0
  129. reflex/components/radix/themes/components/radio_cards.pyi +32 -34
  130. reflex/components/radix/themes/components/radio_group.py +1 -1
  131. reflex/components/radix/themes/components/radio_group.pyi +62 -64
  132. reflex/components/radix/themes/components/scroll_area.pyi +16 -16
  133. reflex/components/radix/themes/components/segmented_control.pyi +32 -35
  134. reflex/components/radix/themes/components/select.py +4 -0
  135. reflex/components/radix/themes/components/select.pyi +145 -157
  136. reflex/components/radix/themes/components/separator.pyi +16 -16
  137. reflex/components/radix/themes/components/skeleton.py +3 -0
  138. reflex/components/radix/themes/components/skeleton.pyi +16 -16
  139. reflex/components/radix/themes/components/slider.pyi +22 -28
  140. reflex/components/radix/themes/components/spinner.pyi +16 -16
  141. reflex/components/radix/themes/components/switch.pyi +17 -19
  142. reflex/components/radix/themes/components/table.pyi +106 -106
  143. reflex/components/radix/themes/components/tabs.py +3 -0
  144. reflex/components/radix/themes/components/tabs.pyi +78 -82
  145. reflex/components/radix/themes/components/text_area.py +12 -0
  146. reflex/components/radix/themes/components/text_area.pyi +21 -33
  147. reflex/components/radix/themes/components/text_field.py +1 -1
  148. reflex/components/radix/themes/components/text_field.pyi +52 -80
  149. reflex/components/radix/themes/components/tooltip.py +6 -1
  150. reflex/components/radix/themes/components/tooltip.pyi +20 -21
  151. reflex/components/radix/themes/layout/__init__.pyi +1 -1
  152. reflex/components/radix/themes/layout/base.pyi +16 -16
  153. reflex/components/radix/themes/layout/box.pyi +16 -16
  154. reflex/components/radix/themes/layout/center.pyi +16 -16
  155. reflex/components/radix/themes/layout/container.pyi +16 -16
  156. reflex/components/radix/themes/layout/flex.pyi +16 -16
  157. reflex/components/radix/themes/layout/grid.pyi +16 -16
  158. reflex/components/radix/themes/layout/list.py +2 -2
  159. reflex/components/radix/themes/layout/list.pyi +76 -76
  160. reflex/components/radix/themes/layout/section.pyi +16 -16
  161. reflex/components/radix/themes/layout/spacer.pyi +16 -16
  162. reflex/components/radix/themes/layout/stack.py +2 -2
  163. reflex/components/radix/themes/layout/stack.pyi +46 -46
  164. reflex/components/radix/themes/typography/blockquote.pyi +16 -16
  165. reflex/components/radix/themes/typography/code.pyi +16 -16
  166. reflex/components/radix/themes/typography/heading.pyi +16 -16
  167. reflex/components/radix/themes/typography/link.py +1 -1
  168. reflex/components/radix/themes/typography/link.pyi +16 -16
  169. reflex/components/radix/themes/typography/text.py +2 -2
  170. reflex/components/radix/themes/typography/text.pyi +106 -106
  171. reflex/components/react_player/audio.pyi +33 -39
  172. reflex/components/react_player/react_player.py +1 -1
  173. reflex/components/react_player/react_player.pyi +32 -38
  174. reflex/components/react_player/video.pyi +33 -39
  175. reflex/components/recharts/__init__.py +2 -0
  176. reflex/components/recharts/__init__.pyi +2 -0
  177. reflex/components/recharts/cartesian.pyi +282 -282
  178. reflex/components/recharts/charts.py +15 -15
  179. reflex/components/recharts/charts.pyi +164 -164
  180. reflex/components/recharts/general.py +19 -4
  181. reflex/components/recharts/general.pyi +132 -81
  182. reflex/components/recharts/polar.py +2 -2
  183. reflex/components/recharts/polar.pyi +55 -55
  184. reflex/components/recharts/recharts.py +4 -4
  185. reflex/components/recharts/recharts.pyi +31 -31
  186. reflex/components/sonner/toast.py +15 -13
  187. reflex/components/sonner/toast.pyi +22 -22
  188. reflex/components/suneditor/editor.py +6 -4
  189. reflex/components/suneditor/editor.pyi +26 -40
  190. reflex/components/tags/iter_tag.py +3 -3
  191. reflex/components/tags/tag.py +25 -3
  192. reflex/config.py +48 -15
  193. reflex/constants/__init__.py +1 -0
  194. reflex/constants/base.py +4 -1
  195. reflex/constants/compiler.py +5 -2
  196. reflex/constants/config.py +8 -1
  197. reflex/constants/installer.py +9 -9
  198. reflex/constants/style.py +1 -1
  199. reflex/custom_components/custom_components.py +18 -10
  200. reflex/event.py +221 -231
  201. reflex/experimental/__init__.py +19 -11
  202. reflex/experimental/client_state.py +53 -28
  203. reflex/experimental/hooks.py +5 -5
  204. reflex/experimental/layout.py +8 -5
  205. reflex/experimental/layout.pyi +79 -83
  206. reflex/experimental/misc.py +3 -3
  207. reflex/istate/wrappers.py +1 -1
  208. reflex/middleware/hydrate_middleware.py +2 -2
  209. reflex/model.py +11 -6
  210. reflex/page.py +5 -5
  211. reflex/reflex.py +104 -26
  212. reflex/route.py +1 -1
  213. reflex/state.py +358 -401
  214. reflex/style.py +27 -3
  215. reflex/testing.py +29 -23
  216. reflex/utils/build.py +6 -2
  217. reflex/utils/codespaces.py +1 -4
  218. reflex/utils/compat.py +6 -5
  219. reflex/utils/console.py +71 -16
  220. reflex/utils/exceptions.py +89 -26
  221. reflex/utils/exec.py +69 -74
  222. reflex/utils/export.py +6 -1
  223. reflex/utils/format.py +8 -40
  224. reflex/utils/imports.py +5 -2
  225. reflex/utils/lazy_loader.py +7 -1
  226. reflex/utils/path_ops.py +74 -14
  227. reflex/utils/prerequisites.py +345 -68
  228. reflex/utils/processes.py +45 -32
  229. reflex/utils/pyi_generator.py +39 -33
  230. reflex/utils/registry.py +4 -4
  231. reflex/utils/serializers.py +1 -1
  232. reflex/utils/telemetry.py +5 -4
  233. reflex/utils/types.py +42 -18
  234. reflex/vars/base.py +695 -330
  235. reflex/vars/datetime.py +6 -7
  236. reflex/vars/dep_tracking.py +344 -0
  237. reflex/vars/function.py +11 -5
  238. reflex/vars/number.py +31 -43
  239. reflex/vars/object.py +74 -64
  240. reflex/vars/sequence.py +79 -67
  241. {reflex-0.6.8a2.dist-info → reflex-0.7.0.dist-info}/METADATA +7 -8
  242. reflex-0.7.0.dist-info/RECORD +401 -0
  243. {reflex-0.6.8a2.dist-info → reflex-0.7.0.dist-info}/WHEEL +1 -1
  244. reflex/experimental/assets.py +0 -37
  245. reflex-0.6.8a2.dist-info/RECORD +0 -397
  246. {reflex-0.6.8a2.dist-info → reflex-0.7.0.dist-info}/LICENSE +0 -0
  247. {reflex-0.6.8a2.dist-info → reflex-0.7.0.dist-info}/entry_points.txt +0 -0
@@ -602,7 +602,7 @@ class ShikiCodeBlock(Component, MarkdownComponentMap):
602
602
 
603
603
  transformer_styles = {}
604
604
  # Collect styles from transformers and wrapper
605
- for transformer in code_block.transformers._var_value: # type: ignore
605
+ for transformer in code_block.transformers._var_value: # pyright: ignore [reportAttributeAccessIssue]
606
606
  if isinstance(transformer, ShikiBaseTransformers) and transformer.style:
607
607
  transformer_styles.update(transformer.style)
608
608
  transformer_styles.update(code_wrapper_props.pop("style", {}))
@@ -621,18 +621,22 @@ class ShikiCodeBlock(Component, MarkdownComponentMap):
621
621
 
622
622
  Returns:
623
623
  Imports for the component.
624
+
625
+ Raises:
626
+ ValueError: If the transformers are not of type LiteralVar.
624
627
  """
625
628
  imports = defaultdict(list)
629
+ if not isinstance(self.transformers, LiteralVar):
630
+ raise ValueError(
631
+ f"transformers should be a LiteralVar type. Got {type(self.transformers)} instead."
632
+ )
626
633
  for transformer in self.transformers._var_value:
627
634
  if isinstance(transformer, ShikiBaseTransformers):
628
635
  imports[transformer.library].extend(
629
636
  [ImportVar(tag=str(fn)) for fn in transformer.fns]
630
637
  )
631
- (
638
+ if transformer.library not in self.lib_dependencies:
632
639
  self.lib_dependencies.append(transformer.library)
633
- if transformer.library not in self.lib_dependencies
634
- else None
635
- )
636
640
  return imports
637
641
 
638
642
  @classmethod
@@ -653,8 +657,9 @@ class ShikiCodeBlock(Component, MarkdownComponentMap):
653
657
  raise ValueError(
654
658
  f"the function names should be str names of functions in the specified transformer: {library!r}"
655
659
  )
656
- return ShikiBaseTransformers( # type: ignore
657
- library=library, fns=[FunctionStringVar.create(fn) for fn in fns]
660
+ return ShikiBaseTransformers(
661
+ library=library,
662
+ fns=[FunctionStringVar.create(fn) for fn in fns], # pyright: ignore [reportCallIssue]
658
663
  )
659
664
 
660
665
  def _render(self, props: dict[str, Any] | None = None):
@@ -757,13 +762,13 @@ class ShikiHighLevelCodeBlock(ShikiCodeBlock):
757
762
 
758
763
  if can_copy:
759
764
  code = children[0]
760
- copy_button = ( # type: ignore
765
+ copy_button = (
761
766
  copy_button
762
767
  if copy_button is not None
763
768
  else Button.create(
764
769
  Icon.create(tag="copy", size=16, color=color("gray", 11)),
765
770
  on_click=[
766
- set_clipboard(cls._strip_transformer_triggers(code)), # type: ignore
771
+ set_clipboard(cls._strip_transformer_triggers(code)),
767
772
  copy_script(),
768
773
  ],
769
774
  style=Style(
@@ -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(""),