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
@@ -48,7 +48,7 @@ class PropsBase(Base):
48
48
  class NoExtrasAllowedProps(Base):
49
49
  """A class that holds props to be passed or applied to a component with no extra props allowed."""
50
50
 
51
- def __init__(self, component_name=None, **kwargs):
51
+ def __init__(self, component_name: str | None = None, **kwargs):
52
52
  """Initialize the props.
53
53
 
54
54
  Args:
@@ -62,13 +62,13 @@ class NoExtrasAllowedProps(Base):
62
62
  try:
63
63
  super().__init__(**kwargs)
64
64
  except ValidationError as e:
65
- invalid_fields = ", ".join([error["loc"][0] for error in e.errors()]) # type: ignore
65
+ invalid_fields = ", ".join([error["loc"][0] for error in e.errors()]) # pyright: ignore [reportCallIssue, reportArgumentType]
66
66
  supported_props_str = ", ".join(f'"{field}"' for field in self.get_fields())
67
67
  raise InvalidPropValueError(
68
68
  f"Invalid prop(s) {invalid_fields} for {component_name!r}. Supported props are {supported_props_str}"
69
69
  ) from None
70
70
 
71
- class Config:
71
+ class Config: # pyright: ignore [reportIncompatibleVariableOverride]
72
72
  """Pydantic config."""
73
73
 
74
74
  arbitrary_types_allowed = True
@@ -55,7 +55,7 @@ from .themes.layout.container import container as container
55
55
  from .themes.layout.flex import flex as flex
56
56
  from .themes.layout.grid import grid as grid
57
57
  from .themes.layout.list import list_item as list_item
58
- from .themes.layout.list import list_ns as list # noqa
58
+ from .themes.layout.list import list_ns as list # noqa: F401
59
59
  from .themes.layout.list import ordered_list as ordered_list
60
60
  from .themes.layout.list import unordered_list as unordered_list
61
61
  from .themes.layout.section import section as section
@@ -10,6 +10,7 @@ from reflex.components.core.cond import cond
10
10
  from reflex.components.lucide.icon import Icon
11
11
  from reflex.components.radix.primitives.base import RadixPrimitiveComponent
12
12
  from reflex.components.radix.themes.base import LiteralAccentColor, LiteralRadius
13
+ from reflex.constants.compiler import MemoizationMode
13
14
  from reflex.event import EventHandler
14
15
  from reflex.style import Style
15
16
  from reflex.vars import get_uuid_string_var
@@ -196,8 +197,9 @@ class AccordionItem(AccordionComponent):
196
197
 
197
198
  # The header of the accordion item.
198
199
  header: Var[Union[Component, str]]
200
+
199
201
  # The content of the accordion item.
200
- content: Var[Union[Component, str]] = Var.create(None)
202
+ content: Var[Union[Component, str, None]] = Var.create(None)
201
203
 
202
204
  _valid_children: List[str] = [
203
205
  "AccordionHeader",
@@ -341,6 +343,8 @@ class AccordionTrigger(AccordionComponent):
341
343
 
342
344
  alias = "RadixAccordionTrigger"
343
345
 
346
+ _memoization_mode = MemoizationMode(recursive=False)
347
+
344
348
  @classmethod
345
349
  def create(cls, *children, **props) -> Component:
346
350
  """Create the Accordion trigger component.
@@ -485,11 +489,11 @@ to {
485
489
  Returns:
486
490
  The style of the component.
487
491
  """
488
- slideDown = LiteralVar.create(
492
+ slide_down = LiteralVar.create(
489
493
  "${slideDown} var(--animation-duration) var(--animation-easing)",
490
494
  )
491
495
 
492
- slideUp = LiteralVar.create(
496
+ slide_up = LiteralVar.create(
493
497
  "${slideUp} var(--animation-duration) var(--animation-easing)",
494
498
  )
495
499
 
@@ -503,8 +507,8 @@ to {
503
507
  "display": "block",
504
508
  "height": "var(--space-3)",
505
509
  },
506
- "&[data-state='open']": {"animation": slideDown},
507
- "&[data-state='closed']": {"animation": slideUp},
510
+ "&[data-state='open']": {"animation": slide_down},
511
+ "&[data-state='closed']": {"animation": slide_up},
508
512
  _inherited_variant_selector("classic"): {
509
513
  "color": "var(--accent-contrast)",
510
514
  },
@@ -8,7 +8,7 @@ from typing import Any, Dict, List, Literal, Optional, Tuple, Union, overload
8
8
  from reflex.components.component import Component, ComponentNamespace
9
9
  from reflex.components.lucide.icon import Icon
10
10
  from reflex.components.radix.primitives.base import RadixPrimitiveComponent
11
- from reflex.event import BASE_STATE, EventType
11
+ from reflex.event import EventType
12
12
  from reflex.style import Style
13
13
  from reflex.vars.base import Var
14
14
 
@@ -101,21 +101,21 @@ class AccordionComponent(RadixPrimitiveComponent):
101
101
  class_name: Optional[Any] = None,
102
102
  autofocus: Optional[bool] = None,
103
103
  custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None,
104
- on_blur: Optional[EventType[[], BASE_STATE]] = None,
105
- on_click: Optional[EventType[[], BASE_STATE]] = None,
106
- on_context_menu: Optional[EventType[[], BASE_STATE]] = None,
107
- on_double_click: Optional[EventType[[], BASE_STATE]] = None,
108
- on_focus: Optional[EventType[[], BASE_STATE]] = None,
109
- on_mount: Optional[EventType[[], BASE_STATE]] = None,
110
- on_mouse_down: Optional[EventType[[], BASE_STATE]] = None,
111
- on_mouse_enter: Optional[EventType[[], BASE_STATE]] = None,
112
- on_mouse_leave: Optional[EventType[[], BASE_STATE]] = None,
113
- on_mouse_move: Optional[EventType[[], BASE_STATE]] = None,
114
- on_mouse_out: Optional[EventType[[], BASE_STATE]] = None,
115
- on_mouse_over: Optional[EventType[[], BASE_STATE]] = None,
116
- on_mouse_up: Optional[EventType[[], BASE_STATE]] = None,
117
- on_scroll: Optional[EventType[[], BASE_STATE]] = None,
118
- on_unmount: Optional[EventType[[], BASE_STATE]] = None,
104
+ on_blur: Optional[EventType[()]] = None,
105
+ on_click: Optional[EventType[()]] = None,
106
+ on_context_menu: Optional[EventType[()]] = None,
107
+ on_double_click: Optional[EventType[()]] = None,
108
+ on_focus: Optional[EventType[()]] = None,
109
+ on_mount: Optional[EventType[()]] = None,
110
+ on_mouse_down: Optional[EventType[()]] = None,
111
+ on_mouse_enter: Optional[EventType[()]] = None,
112
+ on_mouse_leave: Optional[EventType[()]] = None,
113
+ on_mouse_move: Optional[EventType[()]] = None,
114
+ on_mouse_out: Optional[EventType[()]] = None,
115
+ on_mouse_over: Optional[EventType[()]] = None,
116
+ on_mouse_up: Optional[EventType[()]] = None,
117
+ on_scroll: Optional[EventType[()]] = None,
118
+ on_unmount: Optional[EventType[()]] = None,
119
119
  **props,
120
120
  ) -> "AccordionComponent":
121
121
  """Create the component.
@@ -247,23 +247,23 @@ class AccordionRoot(AccordionComponent):
247
247
  class_name: Optional[Any] = None,
248
248
  autofocus: Optional[bool] = None,
249
249
  custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None,
250
- on_blur: Optional[EventType[[], BASE_STATE]] = None,
251
- on_click: Optional[EventType[[], BASE_STATE]] = None,
252
- on_context_menu: Optional[EventType[[], BASE_STATE]] = None,
253
- on_double_click: Optional[EventType[[], BASE_STATE]] = None,
254
- on_focus: Optional[EventType[[], BASE_STATE]] = None,
255
- on_mount: Optional[EventType[[], BASE_STATE]] = None,
256
- on_mouse_down: Optional[EventType[[], BASE_STATE]] = None,
257
- on_mouse_enter: Optional[EventType[[], BASE_STATE]] = None,
258
- on_mouse_leave: Optional[EventType[[], BASE_STATE]] = None,
259
- on_mouse_move: Optional[EventType[[], BASE_STATE]] = None,
260
- on_mouse_out: Optional[EventType[[], BASE_STATE]] = None,
261
- on_mouse_over: Optional[EventType[[], BASE_STATE]] = None,
262
- on_mouse_up: Optional[EventType[[], BASE_STATE]] = None,
263
- on_scroll: Optional[EventType[[], BASE_STATE]] = None,
264
- on_unmount: Optional[EventType[[], BASE_STATE]] = None,
250
+ on_blur: Optional[EventType[()]] = None,
251
+ on_click: Optional[EventType[()]] = None,
252
+ on_context_menu: Optional[EventType[()]] = None,
253
+ on_double_click: Optional[EventType[()]] = None,
254
+ on_focus: Optional[EventType[()]] = None,
255
+ on_mount: Optional[EventType[()]] = None,
256
+ on_mouse_down: Optional[EventType[()]] = None,
257
+ on_mouse_enter: Optional[EventType[()]] = None,
258
+ on_mouse_leave: Optional[EventType[()]] = None,
259
+ on_mouse_move: Optional[EventType[()]] = None,
260
+ on_mouse_out: Optional[EventType[()]] = None,
261
+ on_mouse_over: Optional[EventType[()]] = None,
262
+ on_mouse_up: Optional[EventType[()]] = None,
263
+ on_scroll: Optional[EventType[()]] = None,
264
+ on_unmount: Optional[EventType[()]] = None,
265
265
  on_value_change: Optional[
266
- Union[EventType[[], BASE_STATE], EventType[[str | List[str]], BASE_STATE]]
266
+ Union[EventType[()], EventType[str | List[str]]]
267
267
  ] = None,
268
268
  **props,
269
269
  ) -> "AccordionRoot":
@@ -308,7 +308,9 @@ class AccordionItem(AccordionComponent):
308
308
  value: Optional[Union[Var[str], str]] = None,
309
309
  disabled: Optional[Union[Var[bool], bool]] = None,
310
310
  header: Optional[Union[Component, Var[Union[Component, str]], str]] = None,
311
- content: Optional[Union[Component, Var[Union[Component, str]], str]] = None,
311
+ content: Optional[
312
+ Union[Component, Var[Optional[Union[Component, str]]], str]
313
+ ] = None,
312
314
  color_scheme: Optional[
313
315
  Union[
314
316
  Literal[
@@ -384,21 +386,21 @@ class AccordionItem(AccordionComponent):
384
386
  class_name: Optional[Any] = None,
385
387
  autofocus: Optional[bool] = None,
386
388
  custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None,
387
- on_blur: Optional[EventType[[], BASE_STATE]] = None,
388
- on_click: Optional[EventType[[], BASE_STATE]] = None,
389
- on_context_menu: Optional[EventType[[], BASE_STATE]] = None,
390
- on_double_click: Optional[EventType[[], BASE_STATE]] = None,
391
- on_focus: Optional[EventType[[], BASE_STATE]] = None,
392
- on_mount: Optional[EventType[[], BASE_STATE]] = None,
393
- on_mouse_down: Optional[EventType[[], BASE_STATE]] = None,
394
- on_mouse_enter: Optional[EventType[[], BASE_STATE]] = None,
395
- on_mouse_leave: Optional[EventType[[], BASE_STATE]] = None,
396
- on_mouse_move: Optional[EventType[[], BASE_STATE]] = None,
397
- on_mouse_out: Optional[EventType[[], BASE_STATE]] = None,
398
- on_mouse_over: Optional[EventType[[], BASE_STATE]] = None,
399
- on_mouse_up: Optional[EventType[[], BASE_STATE]] = None,
400
- on_scroll: Optional[EventType[[], BASE_STATE]] = None,
401
- on_unmount: Optional[EventType[[], BASE_STATE]] = None,
389
+ on_blur: Optional[EventType[()]] = None,
390
+ on_click: Optional[EventType[()]] = None,
391
+ on_context_menu: Optional[EventType[()]] = None,
392
+ on_double_click: Optional[EventType[()]] = None,
393
+ on_focus: Optional[EventType[()]] = None,
394
+ on_mount: Optional[EventType[()]] = None,
395
+ on_mouse_down: Optional[EventType[()]] = None,
396
+ on_mouse_enter: Optional[EventType[()]] = None,
397
+ on_mouse_leave: Optional[EventType[()]] = None,
398
+ on_mouse_move: Optional[EventType[()]] = None,
399
+ on_mouse_out: Optional[EventType[()]] = None,
400
+ on_mouse_over: Optional[EventType[()]] = None,
401
+ on_mouse_up: Optional[EventType[()]] = None,
402
+ on_scroll: Optional[EventType[()]] = None,
403
+ on_unmount: Optional[EventType[()]] = None,
402
404
  **props,
403
405
  ) -> "AccordionItem":
404
406
  """Create an accordion item.
@@ -508,21 +510,21 @@ class AccordionHeader(AccordionComponent):
508
510
  class_name: Optional[Any] = None,
509
511
  autofocus: Optional[bool] = None,
510
512
  custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None,
511
- on_blur: Optional[EventType[[], BASE_STATE]] = None,
512
- on_click: Optional[EventType[[], BASE_STATE]] = None,
513
- on_context_menu: Optional[EventType[[], BASE_STATE]] = None,
514
- on_double_click: Optional[EventType[[], BASE_STATE]] = None,
515
- on_focus: Optional[EventType[[], BASE_STATE]] = None,
516
- on_mount: Optional[EventType[[], BASE_STATE]] = None,
517
- on_mouse_down: Optional[EventType[[], BASE_STATE]] = None,
518
- on_mouse_enter: Optional[EventType[[], BASE_STATE]] = None,
519
- on_mouse_leave: Optional[EventType[[], BASE_STATE]] = None,
520
- on_mouse_move: Optional[EventType[[], BASE_STATE]] = None,
521
- on_mouse_out: Optional[EventType[[], BASE_STATE]] = None,
522
- on_mouse_over: Optional[EventType[[], BASE_STATE]] = None,
523
- on_mouse_up: Optional[EventType[[], BASE_STATE]] = None,
524
- on_scroll: Optional[EventType[[], BASE_STATE]] = None,
525
- on_unmount: Optional[EventType[[], BASE_STATE]] = None,
513
+ on_blur: Optional[EventType[()]] = None,
514
+ on_click: Optional[EventType[()]] = None,
515
+ on_context_menu: Optional[EventType[()]] = None,
516
+ on_double_click: Optional[EventType[()]] = None,
517
+ on_focus: Optional[EventType[()]] = None,
518
+ on_mount: Optional[EventType[()]] = None,
519
+ on_mouse_down: Optional[EventType[()]] = None,
520
+ on_mouse_enter: Optional[EventType[()]] = None,
521
+ on_mouse_leave: Optional[EventType[()]] = None,
522
+ on_mouse_move: Optional[EventType[()]] = None,
523
+ on_mouse_out: Optional[EventType[()]] = None,
524
+ on_mouse_over: Optional[EventType[()]] = None,
525
+ on_mouse_up: Optional[EventType[()]] = None,
526
+ on_scroll: Optional[EventType[()]] = None,
527
+ on_unmount: Optional[EventType[()]] = None,
526
528
  **props,
527
529
  ) -> "AccordionHeader":
528
530
  """Create the Accordion header component.
@@ -628,21 +630,21 @@ class AccordionTrigger(AccordionComponent):
628
630
  class_name: Optional[Any] = None,
629
631
  autofocus: Optional[bool] = None,
630
632
  custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None,
631
- on_blur: Optional[EventType[[], BASE_STATE]] = None,
632
- on_click: Optional[EventType[[], BASE_STATE]] = None,
633
- on_context_menu: Optional[EventType[[], BASE_STATE]] = None,
634
- on_double_click: Optional[EventType[[], BASE_STATE]] = None,
635
- on_focus: Optional[EventType[[], BASE_STATE]] = None,
636
- on_mount: Optional[EventType[[], BASE_STATE]] = None,
637
- on_mouse_down: Optional[EventType[[], BASE_STATE]] = None,
638
- on_mouse_enter: Optional[EventType[[], BASE_STATE]] = None,
639
- on_mouse_leave: Optional[EventType[[], BASE_STATE]] = None,
640
- on_mouse_move: Optional[EventType[[], BASE_STATE]] = None,
641
- on_mouse_out: Optional[EventType[[], BASE_STATE]] = None,
642
- on_mouse_over: Optional[EventType[[], BASE_STATE]] = None,
643
- on_mouse_up: Optional[EventType[[], BASE_STATE]] = None,
644
- on_scroll: Optional[EventType[[], BASE_STATE]] = None,
645
- on_unmount: Optional[EventType[[], BASE_STATE]] = None,
633
+ on_blur: Optional[EventType[()]] = None,
634
+ on_click: Optional[EventType[()]] = None,
635
+ on_context_menu: Optional[EventType[()]] = None,
636
+ on_double_click: Optional[EventType[()]] = None,
637
+ on_focus: Optional[EventType[()]] = None,
638
+ on_mount: Optional[EventType[()]] = None,
639
+ on_mouse_down: Optional[EventType[()]] = None,
640
+ on_mouse_enter: Optional[EventType[()]] = None,
641
+ on_mouse_leave: Optional[EventType[()]] = None,
642
+ on_mouse_move: Optional[EventType[()]] = None,
643
+ on_mouse_out: Optional[EventType[()]] = None,
644
+ on_mouse_over: Optional[EventType[()]] = None,
645
+ on_mouse_up: Optional[EventType[()]] = None,
646
+ on_scroll: Optional[EventType[()]] = None,
647
+ on_unmount: Optional[EventType[()]] = None,
646
648
  **props,
647
649
  ) -> "AccordionTrigger":
648
650
  """Create the Accordion trigger component.
@@ -680,21 +682,21 @@ class AccordionIcon(Icon):
680
682
  class_name: Optional[Any] = None,
681
683
  autofocus: Optional[bool] = None,
682
684
  custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None,
683
- on_blur: Optional[EventType[[], BASE_STATE]] = None,
684
- on_click: Optional[EventType[[], BASE_STATE]] = None,
685
- on_context_menu: Optional[EventType[[], BASE_STATE]] = None,
686
- on_double_click: Optional[EventType[[], BASE_STATE]] = None,
687
- on_focus: Optional[EventType[[], BASE_STATE]] = None,
688
- on_mount: Optional[EventType[[], BASE_STATE]] = None,
689
- on_mouse_down: Optional[EventType[[], BASE_STATE]] = None,
690
- on_mouse_enter: Optional[EventType[[], BASE_STATE]] = None,
691
- on_mouse_leave: Optional[EventType[[], BASE_STATE]] = None,
692
- on_mouse_move: Optional[EventType[[], BASE_STATE]] = None,
693
- on_mouse_out: Optional[EventType[[], BASE_STATE]] = None,
694
- on_mouse_over: Optional[EventType[[], BASE_STATE]] = None,
695
- on_mouse_up: Optional[EventType[[], BASE_STATE]] = None,
696
- on_scroll: Optional[EventType[[], BASE_STATE]] = None,
697
- on_unmount: Optional[EventType[[], BASE_STATE]] = None,
685
+ on_blur: Optional[EventType[()]] = None,
686
+ on_click: Optional[EventType[()]] = None,
687
+ on_context_menu: Optional[EventType[()]] = None,
688
+ on_double_click: Optional[EventType[()]] = None,
689
+ on_focus: Optional[EventType[()]] = None,
690
+ on_mount: Optional[EventType[()]] = None,
691
+ on_mouse_down: Optional[EventType[()]] = None,
692
+ on_mouse_enter: Optional[EventType[()]] = None,
693
+ on_mouse_leave: Optional[EventType[()]] = None,
694
+ on_mouse_move: Optional[EventType[()]] = None,
695
+ on_mouse_out: Optional[EventType[()]] = None,
696
+ on_mouse_over: Optional[EventType[()]] = None,
697
+ on_mouse_up: Optional[EventType[()]] = None,
698
+ on_scroll: Optional[EventType[()]] = None,
699
+ on_unmount: Optional[EventType[()]] = None,
698
700
  **props,
699
701
  ) -> "AccordionIcon":
700
702
  """Create the Accordion icon component.
@@ -797,21 +799,21 @@ class AccordionContent(AccordionComponent):
797
799
  class_name: Optional[Any] = None,
798
800
  autofocus: Optional[bool] = None,
799
801
  custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None,
800
- on_blur: Optional[EventType[[], BASE_STATE]] = None,
801
- on_click: Optional[EventType[[], BASE_STATE]] = None,
802
- on_context_menu: Optional[EventType[[], BASE_STATE]] = None,
803
- on_double_click: Optional[EventType[[], BASE_STATE]] = None,
804
- on_focus: Optional[EventType[[], BASE_STATE]] = None,
805
- on_mount: Optional[EventType[[], BASE_STATE]] = None,
806
- on_mouse_down: Optional[EventType[[], BASE_STATE]] = None,
807
- on_mouse_enter: Optional[EventType[[], BASE_STATE]] = None,
808
- on_mouse_leave: Optional[EventType[[], BASE_STATE]] = None,
809
- on_mouse_move: Optional[EventType[[], BASE_STATE]] = None,
810
- on_mouse_out: Optional[EventType[[], BASE_STATE]] = None,
811
- on_mouse_over: Optional[EventType[[], BASE_STATE]] = None,
812
- on_mouse_up: Optional[EventType[[], BASE_STATE]] = None,
813
- on_scroll: Optional[EventType[[], BASE_STATE]] = None,
814
- on_unmount: Optional[EventType[[], BASE_STATE]] = None,
802
+ on_blur: Optional[EventType[()]] = None,
803
+ on_click: Optional[EventType[()]] = None,
804
+ on_context_menu: Optional[EventType[()]] = None,
805
+ on_double_click: Optional[EventType[()]] = None,
806
+ on_focus: Optional[EventType[()]] = None,
807
+ on_mount: Optional[EventType[()]] = None,
808
+ on_mouse_down: Optional[EventType[()]] = None,
809
+ on_mouse_enter: Optional[EventType[()]] = None,
810
+ on_mouse_leave: Optional[EventType[()]] = None,
811
+ on_mouse_move: Optional[EventType[()]] = None,
812
+ on_mouse_out: Optional[EventType[()]] = None,
813
+ on_mouse_over: Optional[EventType[()]] = None,
814
+ on_mouse_up: Optional[EventType[()]] = None,
815
+ on_scroll: Optional[EventType[()]] = None,
816
+ on_unmount: Optional[EventType[()]] = None,
815
817
  **props,
816
818
  ) -> "AccordionContent":
817
819
  """Create the Accordion content component.
@@ -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
 
@@ -23,21 +23,21 @@ class RadixPrimitiveComponent(Component):
23
23
  class_name: Optional[Any] = None,
24
24
  autofocus: Optional[bool] = None,
25
25
  custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None,
26
- on_blur: Optional[EventType[[], BASE_STATE]] = None,
27
- on_click: Optional[EventType[[], BASE_STATE]] = None,
28
- on_context_menu: Optional[EventType[[], BASE_STATE]] = None,
29
- on_double_click: Optional[EventType[[], BASE_STATE]] = None,
30
- on_focus: Optional[EventType[[], BASE_STATE]] = None,
31
- on_mount: Optional[EventType[[], BASE_STATE]] = None,
32
- on_mouse_down: Optional[EventType[[], BASE_STATE]] = None,
33
- on_mouse_enter: Optional[EventType[[], BASE_STATE]] = None,
34
- on_mouse_leave: Optional[EventType[[], BASE_STATE]] = None,
35
- on_mouse_move: Optional[EventType[[], BASE_STATE]] = None,
36
- on_mouse_out: Optional[EventType[[], BASE_STATE]] = None,
37
- on_mouse_over: Optional[EventType[[], BASE_STATE]] = None,
38
- on_mouse_up: Optional[EventType[[], BASE_STATE]] = None,
39
- on_scroll: Optional[EventType[[], BASE_STATE]] = None,
40
- on_unmount: Optional[EventType[[], BASE_STATE]] = None,
26
+ on_blur: Optional[EventType[()]] = None,
27
+ on_click: Optional[EventType[()]] = None,
28
+ on_context_menu: Optional[EventType[()]] = None,
29
+ on_double_click: Optional[EventType[()]] = None,
30
+ on_focus: Optional[EventType[()]] = None,
31
+ on_mount: Optional[EventType[()]] = None,
32
+ on_mouse_down: Optional[EventType[()]] = None,
33
+ on_mouse_enter: Optional[EventType[()]] = None,
34
+ on_mouse_leave: Optional[EventType[()]] = None,
35
+ on_mouse_move: Optional[EventType[()]] = None,
36
+ on_mouse_out: Optional[EventType[()]] = None,
37
+ on_mouse_over: Optional[EventType[()]] = None,
38
+ on_mouse_up: Optional[EventType[()]] = None,
39
+ on_scroll: Optional[EventType[()]] = None,
40
+ on_unmount: Optional[EventType[()]] = None,
41
41
  **props,
42
42
  ) -> "RadixPrimitiveComponent":
43
43
  """Create the component.
@@ -71,21 +71,21 @@ class RadixPrimitiveComponentWithClassName(RadixPrimitiveComponent):
71
71
  class_name: Optional[Any] = None,
72
72
  autofocus: Optional[bool] = None,
73
73
  custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None,
74
- on_blur: Optional[EventType[[], BASE_STATE]] = None,
75
- on_click: Optional[EventType[[], BASE_STATE]] = None,
76
- on_context_menu: Optional[EventType[[], BASE_STATE]] = None,
77
- on_double_click: Optional[EventType[[], BASE_STATE]] = None,
78
- on_focus: Optional[EventType[[], BASE_STATE]] = None,
79
- on_mount: Optional[EventType[[], BASE_STATE]] = None,
80
- on_mouse_down: Optional[EventType[[], BASE_STATE]] = None,
81
- on_mouse_enter: Optional[EventType[[], BASE_STATE]] = None,
82
- on_mouse_leave: Optional[EventType[[], BASE_STATE]] = None,
83
- on_mouse_move: Optional[EventType[[], BASE_STATE]] = None,
84
- on_mouse_out: Optional[EventType[[], BASE_STATE]] = None,
85
- on_mouse_over: Optional[EventType[[], BASE_STATE]] = None,
86
- on_mouse_up: Optional[EventType[[], BASE_STATE]] = None,
87
- on_scroll: Optional[EventType[[], BASE_STATE]] = None,
88
- on_unmount: Optional[EventType[[], BASE_STATE]] = None,
74
+ on_blur: Optional[EventType[()]] = None,
75
+ on_click: Optional[EventType[()]] = None,
76
+ on_context_menu: Optional[EventType[()]] = None,
77
+ on_double_click: Optional[EventType[()]] = None,
78
+ on_focus: Optional[EventType[()]] = None,
79
+ on_mount: Optional[EventType[()]] = None,
80
+ on_mouse_down: Optional[EventType[()]] = None,
81
+ on_mouse_enter: Optional[EventType[()]] = None,
82
+ on_mouse_leave: Optional[EventType[()]] = None,
83
+ on_mouse_move: Optional[EventType[()]] = None,
84
+ on_mouse_out: Optional[EventType[()]] = None,
85
+ on_mouse_over: Optional[EventType[()]] = None,
86
+ on_mouse_up: Optional[EventType[()]] = None,
87
+ on_scroll: Optional[EventType[()]] = None,
88
+ on_unmount: Optional[EventType[()]] = None,
89
89
  **props,
90
90
  ) -> "RadixPrimitiveComponentWithClassName":
91
91
  """Create the component.
@@ -10,6 +10,7 @@ from reflex.components.component import Component, ComponentNamespace
10
10
  from reflex.components.radix.primitives.base import RadixPrimitiveComponent
11
11
  from reflex.components.radix.themes.base import Theme
12
12
  from reflex.components.radix.themes.layout.flex import Flex
13
+ from reflex.constants.compiler import MemoizationMode
13
14
  from reflex.event import EventHandler, no_args_event_spec, passthrough_event_spec
14
15
  from reflex.vars.base import Var
15
16
 
@@ -66,7 +67,7 @@ class DrawerRoot(DrawerComponent):
66
67
  scroll_lock_timeout: Var[int]
67
68
 
68
69
  # When `True`, it prevents scroll restoration. Defaults to `True`.
69
- preventScrollRestoration: Var[bool]
70
+ prevent_scroll_restoration: Var[bool]
70
71
 
71
72
  # Enable background scaling, it requires container element with `vaul-drawer-wrapper` attribute to scale its background.
72
73
  should_scale_background: Var[bool]
@@ -83,7 +84,9 @@ class DrawerTrigger(DrawerComponent):
83
84
  alias = "Vaul" + tag
84
85
 
85
86
  # Defaults to true, if the first child acts as the trigger.
86
- as_child: Var[bool] = True # type: ignore
87
+ as_child: Var[bool] = Var.create(True)
88
+
89
+ _memoization_mode = MemoizationMode(recursive=False)
87
90
 
88
91
  @classmethod
89
92
  def create(cls, *children: Any, **props: Any) -> Component: