reflex 0.5.4a2__py3-none-any.whl → 0.5.5__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 (261) hide show
  1. reflex/.templates/apps/demo/code/demo.py +1 -0
  2. reflex/.templates/apps/demo/code/pages/__init__.py +1 -0
  3. reflex/.templates/apps/demo/code/pages/datatable.py +1 -0
  4. reflex/.templates/apps/demo/code/pages/forms.py +1 -0
  5. reflex/.templates/apps/demo/code/pages/graphing.py +1 -0
  6. reflex/.templates/apps/demo/code/pages/home.py +1 -0
  7. reflex/.templates/apps/demo/code/styles.py +1 -0
  8. reflex/.templates/apps/demo/code/webui/components/loading_icon.py +1 -8
  9. reflex/.templates/web/components/reflex/chakra_color_mode_provider.js +27 -12
  10. reflex/.templates/web/components/reflex/radix_themes_color_mode_provider.js +19 -5
  11. reflex/.templates/web/utils/state.js +73 -7
  12. reflex/__init__.py +3 -0
  13. reflex/__init__.pyi +3 -0
  14. reflex/admin.py +1 -0
  15. reflex/app.py +8 -6
  16. reflex/app_module_for_backend.py +2 -1
  17. reflex/base.py +4 -4
  18. reflex/compiler/compiler.py +4 -3
  19. reflex/compiler/templates.py +2 -0
  20. reflex/compiler/utils.py +58 -35
  21. reflex/components/__init__.py +1 -0
  22. reflex/components/base/__init__.py +1 -0
  23. reflex/components/base/app_wrap.py +1 -0
  24. reflex/components/base/fragment.py +1 -0
  25. reflex/components/base/link.py +0 -1
  26. reflex/components/base/script.py +11 -15
  27. reflex/components/base/script.pyi +1 -2
  28. reflex/components/chakra/base.py +15 -13
  29. reflex/components/chakra/base.pyi +3 -1
  30. reflex/components/chakra/datadisplay/code.py +1 -0
  31. reflex/components/chakra/datadisplay/divider.py +1 -0
  32. reflex/components/chakra/datadisplay/table.py +1 -0
  33. reflex/components/chakra/datadisplay/table.pyi +3 -0
  34. reflex/components/chakra/datadisplay/tag.py +1 -0
  35. reflex/components/chakra/disclosure/transition.py +1 -0
  36. reflex/components/chakra/feedback/circularprogress.py +1 -0
  37. reflex/components/chakra/forms/button.py +1 -0
  38. reflex/components/chakra/forms/checkbox.py +4 -13
  39. reflex/components/chakra/forms/checkbox.pyi +1 -3
  40. reflex/components/chakra/forms/colormodeswitch.py +1 -0
  41. reflex/components/chakra/forms/editable.py +13 -16
  42. reflex/components/chakra/forms/editable.pyi +1 -3
  43. reflex/components/chakra/forms/form.py +1 -0
  44. reflex/components/chakra/forms/input.py +22 -21
  45. reflex/components/chakra/forms/input.pyi +4 -4
  46. reflex/components/chakra/forms/multiselect.py +1 -0
  47. reflex/components/chakra/forms/numberinput.py +3 -12
  48. reflex/components/chakra/forms/numberinput.pyi +1 -3
  49. reflex/components/chakra/forms/pininput.py +8 -14
  50. reflex/components/chakra/forms/pininput.pyi +2 -3
  51. reflex/components/chakra/forms/radio.py +4 -13
  52. reflex/components/chakra/forms/radio.pyi +2 -3
  53. reflex/components/chakra/forms/rangeslider.py +10 -13
  54. reflex/components/chakra/forms/rangeslider.pyi +2 -3
  55. reflex/components/chakra/forms/select.py +4 -12
  56. reflex/components/chakra/forms/select.pyi +2 -3
  57. reflex/components/chakra/forms/slider.py +10 -13
  58. reflex/components/chakra/forms/slider.pyi +2 -3
  59. reflex/components/chakra/forms/switch.py +4 -13
  60. reflex/components/chakra/forms/switch.pyi +1 -3
  61. reflex/components/chakra/forms/textarea.py +16 -17
  62. reflex/components/chakra/forms/textarea.pyi +1 -3
  63. reflex/components/chakra/media/avatar.py +4 -12
  64. reflex/components/chakra/media/avatar.pyi +1 -2
  65. reflex/components/chakra/media/icon.py +1 -0
  66. reflex/components/chakra/media/image.py +7 -11
  67. reflex/components/chakra/media/image.pyi +2 -2
  68. reflex/components/chakra/navigation/link.py +8 -4
  69. reflex/components/chakra/navigation/link.pyi +2 -1
  70. reflex/components/chakra/overlay/alertdialog.py +12 -14
  71. reflex/components/chakra/overlay/alertdialog.pyi +1 -2
  72. reflex/components/chakra/overlay/drawer.py +12 -14
  73. reflex/components/chakra/overlay/drawer.pyi +1 -2
  74. reflex/components/chakra/overlay/menu.py +7 -11
  75. reflex/components/chakra/overlay/menu.pyi +2 -2
  76. reflex/components/chakra/overlay/modal.py +13 -13
  77. reflex/components/chakra/overlay/modal.pyi +2 -2
  78. reflex/components/chakra/overlay/popover.py +6 -12
  79. reflex/components/chakra/overlay/popover.pyi +1 -2
  80. reflex/components/chakra/overlay/tooltip.py +7 -13
  81. reflex/components/chakra/overlay/tooltip.pyi +1 -2
  82. reflex/components/chakra/typography/heading.py +0 -1
  83. reflex/components/chakra/typography/span.py +1 -0
  84. reflex/components/chakra/typography/text.py +1 -0
  85. reflex/components/component.py +70 -43
  86. reflex/components/core/__init__.py +1 -0
  87. reflex/components/core/banner.py +27 -24
  88. reflex/components/core/banner.pyi +6 -2
  89. reflex/components/core/client_side_routing.py +1 -0
  90. reflex/components/core/cond.py +19 -17
  91. reflex/components/core/debounce.py +4 -11
  92. reflex/components/core/debounce.pyi +1 -1
  93. reflex/components/core/foreach.py +1 -0
  94. reflex/components/core/html.py +1 -0
  95. reflex/components/core/match.py +9 -6
  96. reflex/components/core/upload.py +26 -25
  97. reflex/components/core/upload.pyi +3 -4
  98. reflex/components/datadisplay/__init__.py +1 -0
  99. reflex/components/datadisplay/code.py +27 -23
  100. reflex/components/datadisplay/code.pyi +4 -2
  101. reflex/components/datadisplay/dataeditor.py +73 -80
  102. reflex/components/datadisplay/dataeditor.pyi +52 -4
  103. reflex/components/datadisplay/logo.py +1 -0
  104. reflex/components/el/__init__.py +1 -0
  105. reflex/components/el/__init__.pyi +8 -0
  106. reflex/components/el/element.py +0 -1
  107. reflex/components/el/elements/__init__.py +5 -0
  108. reflex/components/el/elements/__init__.pyi +12 -1
  109. reflex/components/el/elements/base.py +1 -0
  110. reflex/components/el/elements/forms.py +44 -61
  111. reflex/components/el/elements/forms.pyi +4 -6
  112. reflex/components/el/elements/inline.py +1 -0
  113. reflex/components/el/elements/media.py +53 -0
  114. reflex/components/el/elements/media.pyi +428 -0
  115. reflex/components/el/elements/metadata.py +11 -0
  116. reflex/components/el/elements/metadata.pyi +80 -0
  117. reflex/components/el/elements/other.py +1 -0
  118. reflex/components/el/elements/scripts.py +1 -0
  119. reflex/components/el/elements/tables.py +1 -0
  120. reflex/components/el/elements/typography.py +1 -0
  121. reflex/components/gridjs/datatable.py +9 -6
  122. reflex/components/gridjs/datatable.pyi +4 -1
  123. reflex/components/markdown/markdown.py +36 -41
  124. reflex/components/markdown/markdown.pyi +4 -3
  125. reflex/components/media/icon.py +1 -0
  126. reflex/components/moment/moment.py +11 -17
  127. reflex/components/moment/moment.pyi +4 -3
  128. reflex/components/next/base.py +1 -0
  129. reflex/components/next/image.py +6 -11
  130. reflex/components/next/image.pyi +2 -2
  131. reflex/components/plotly/plotly.py +1 -0
  132. reflex/components/props.py +1 -0
  133. reflex/components/radix/__init__.py +1 -0
  134. reflex/components/radix/primitives/__init__.py +1 -0
  135. reflex/components/radix/primitives/accordion.py +7 -15
  136. reflex/components/radix/primitives/accordion.pyi +7 -4
  137. reflex/components/radix/primitives/base.py +1 -0
  138. reflex/components/radix/primitives/drawer.py +17 -27
  139. reflex/components/radix/primitives/drawer.pyi +2 -4
  140. reflex/components/radix/primitives/form.py +4 -12
  141. reflex/components/radix/primitives/form.pyi +2 -3
  142. reflex/components/radix/primitives/slider.py +6 -11
  143. reflex/components/radix/primitives/slider.pyi +2 -2
  144. reflex/components/radix/themes/__init__.py +1 -0
  145. reflex/components/radix/themes/base.py +3 -3
  146. reflex/components/radix/themes/base.pyi +3 -2
  147. reflex/components/radix/themes/color_mode.py +31 -2
  148. reflex/components/radix/themes/color_mode.pyi +10 -1
  149. reflex/components/radix/themes/components/__init__.py +1 -0
  150. reflex/components/radix/themes/components/alert_dialog.py +13 -24
  151. reflex/components/radix/themes/components/alert_dialog.pyi +2 -4
  152. reflex/components/radix/themes/components/aspect_ratio.py +1 -0
  153. reflex/components/radix/themes/components/card.py +1 -0
  154. reflex/components/radix/themes/components/checkbox.py +6 -22
  155. reflex/components/radix/themes/components/checkbox.pyi +2 -4
  156. reflex/components/radix/themes/components/checkbox_group.py +15 -3
  157. reflex/components/radix/themes/components/checkbox_group.pyi +10 -2
  158. reflex/components/radix/themes/components/context_menu.py +29 -38
  159. reflex/components/radix/themes/components/context_menu.pyi +2 -5
  160. reflex/components/radix/themes/components/dialog.py +18 -26
  161. reflex/components/radix/themes/components/dialog.pyi +2 -4
  162. reflex/components/radix/themes/components/dropdown_menu.py +32 -57
  163. reflex/components/radix/themes/components/dropdown_menu.pyi +2 -7
  164. reflex/components/radix/themes/components/hover_card.py +5 -12
  165. reflex/components/radix/themes/components/hover_card.pyi +2 -3
  166. reflex/components/radix/themes/components/icon_button.py +1 -0
  167. reflex/components/radix/themes/components/icon_button.pyi +1 -0
  168. reflex/components/radix/themes/components/inset.py +1 -0
  169. reflex/components/radix/themes/components/popover.py +22 -27
  170. reflex/components/radix/themes/components/popover.pyi +2 -4
  171. reflex/components/radix/themes/components/radio_group.py +25 -17
  172. reflex/components/radix/themes/components/radio_group.pyi +2 -3
  173. reflex/components/radix/themes/components/scroll_area.py +1 -0
  174. reflex/components/radix/themes/components/segmented_control.py +18 -5
  175. reflex/components/radix/themes/components/segmented_control.pyi +16 -7
  176. reflex/components/radix/themes/components/select.py +13 -23
  177. reflex/components/radix/themes/components/select.pyi +1 -4
  178. reflex/components/radix/themes/components/separator.py +1 -0
  179. reflex/components/radix/themes/components/slider.py +7 -12
  180. reflex/components/radix/themes/components/slider.pyi +2 -3
  181. reflex/components/radix/themes/components/switch.py +5 -12
  182. reflex/components/radix/themes/components/switch.pyi +2 -3
  183. reflex/components/radix/themes/components/table.py +1 -0
  184. reflex/components/radix/themes/components/tabs.py +4 -11
  185. reflex/components/radix/themes/components/tabs.pyi +2 -2
  186. reflex/components/radix/themes/components/text_area.py +19 -18
  187. reflex/components/radix/themes/components/text_area.pyi +2 -3
  188. reflex/components/radix/themes/components/text_field.py +19 -18
  189. reflex/components/radix/themes/components/text_field.pyi +3 -3
  190. reflex/components/radix/themes/components/tooltip.py +10 -13
  191. reflex/components/radix/themes/components/tooltip.pyi +2 -3
  192. reflex/components/radix/themes/layout/__init__.py +1 -0
  193. reflex/components/radix/themes/layout/box.py +1 -0
  194. reflex/components/radix/themes/layout/container.py +1 -0
  195. reflex/components/radix/themes/layout/list.py +1 -0
  196. reflex/components/radix/themes/layout/list.pyi +1 -0
  197. reflex/components/radix/themes/layout/section.py +1 -0
  198. reflex/components/radix/themes/typography/__init__.py +1 -0
  199. reflex/components/radix/themes/typography/base.py +1 -0
  200. reflex/components/radix/themes/typography/blockquote.py +1 -0
  201. reflex/components/radix/themes/typography/code.py +1 -0
  202. reflex/components/radix/themes/typography/heading.py +1 -0
  203. reflex/components/radix/themes/typography/link.py +8 -3
  204. reflex/components/radix/themes/typography/link.pyi +2 -1
  205. reflex/components/react_player/audio.py +1 -0
  206. reflex/components/react_player/audio.pyi +48 -0
  207. reflex/components/react_player/react_player.py +49 -0
  208. reflex/components/react_player/react_player.pyi +49 -0
  209. reflex/components/react_player/video.py +1 -0
  210. reflex/components/react_player/video.pyi +48 -0
  211. reflex/components/recharts/__init__.py +1 -0
  212. reflex/components/recharts/cartesian.py +264 -74
  213. reflex/components/recharts/cartesian.pyi +573 -58
  214. reflex/components/recharts/charts.py +68 -78
  215. reflex/components/recharts/charts.pyi +373 -156
  216. reflex/components/recharts/general.py +52 -20
  217. reflex/components/recharts/general.pyi +52 -6
  218. reflex/components/recharts/polar.py +30 -18
  219. reflex/components/recharts/polar.pyi +66 -5
  220. reflex/components/recharts/recharts.py +5 -3
  221. reflex/components/recharts/recharts.pyi +2 -1
  222. reflex/components/sonner/toast.py +2 -2
  223. reflex/components/sonner/toast.pyi +1 -1
  224. reflex/components/suneditor/editor.py +39 -26
  225. reflex/components/suneditor/editor.pyi +4 -4
  226. reflex/components/tags/iter_tag.py +1 -0
  227. reflex/constants/__init__.py +3 -2
  228. reflex/constants/base.py +20 -21
  229. reflex/constants/compiler.py +3 -1
  230. reflex/constants/config.py +1 -0
  231. reflex/constants/event.py +1 -0
  232. reflex/constants/installer.py +3 -2
  233. reflex/constants/style.py +2 -8
  234. reflex/event.py +36 -6
  235. reflex/experimental/assets.py +1 -0
  236. reflex/experimental/client_state.py +9 -3
  237. reflex/experimental/hooks.py +1 -0
  238. reflex/experimental/misc.py +12 -3
  239. reflex/middleware/hydrate_middleware.py +1 -0
  240. reflex/middleware/middleware.py +1 -0
  241. reflex/state.py +38 -1
  242. reflex/style.py +67 -20
  243. reflex/testing.py +6 -2
  244. reflex/utils/build.py +76 -72
  245. reflex/utils/compat.py +5 -0
  246. reflex/utils/exec.py +17 -9
  247. reflex/utils/export.py +13 -9
  248. reflex/utils/imports.py +34 -5
  249. reflex/utils/lazy_loader.py +1 -0
  250. reflex/utils/path_ops.py +39 -33
  251. reflex/utils/prerequisites.py +38 -29
  252. reflex/utils/processes.py +1 -1
  253. reflex/utils/serializers.py +3 -6
  254. reflex/utils/watch.py +3 -1
  255. reflex/vars.py +26 -10
  256. reflex/vars.pyi +3 -3
  257. {reflex-0.5.4a2.dist-info → reflex-0.5.5.dist-info}/METADATA +3 -3
  258. {reflex-0.5.4a2.dist-info → reflex-0.5.5.dist-info}/RECORD +261 -261
  259. {reflex-0.5.4a2.dist-info → reflex-0.5.5.dist-info}/LICENSE +0 -0
  260. {reflex-0.5.4a2.dist-info → reflex-0.5.5.dist-info}/WHEEL +0 -0
  261. {reflex-0.5.4a2.dist-info → reflex-0.5.5.dist-info}/entry_points.txt +0 -0
@@ -7,15 +7,13 @@ from typing import Any, Dict, Literal, Optional, Union, overload
7
7
  from reflex.vars import Var, BaseVar, ComputedVar
8
8
  from reflex.event import EventChain, EventHandler, EventSpec
9
9
  from reflex.style import Style
10
- from typing import Any, Dict, List, Literal, Union
10
+ from typing import List, Literal, Union
11
11
  import reflex as rx
12
12
  from reflex.components.component import Component, ComponentNamespace
13
- from reflex.constants import EventTriggers
14
13
  from reflex.vars import Var
15
14
  from ..base import LiteralAccentColor, LiteralRadius, RadixThemesComponent
16
15
 
17
16
  class SelectRoot(RadixThemesComponent):
18
- def get_event_triggers(self) -> Dict[str, Any]: ...
19
17
  @overload
20
18
  @classmethod
21
19
  def create( # type: ignore
@@ -277,7 +275,6 @@ class SelectTrigger(RadixThemesComponent):
277
275
  ...
278
276
 
279
277
  class SelectContent(RadixThemesComponent):
280
- def get_event_triggers(self) -> Dict[str, Any]: ...
281
278
  @overload
282
279
  @classmethod
283
280
  def create( # type: ignore
@@ -1,4 +1,5 @@
1
1
  """Interactive components provided by @radix-ui/themes."""
2
+
2
3
  from typing import Literal
3
4
 
4
5
  from reflex.vars import Var
@@ -1,8 +1,9 @@
1
1
  """Interactive components provided by @radix-ui/themes."""
2
- from typing import Any, Dict, List, Literal, Optional, Union
2
+
3
+ from typing import List, Literal, Optional, Union
3
4
 
4
5
  from reflex.components.component import Component
5
- from reflex.constants import EventTriggers
6
+ from reflex.event import EventHandler
6
7
  from reflex.vars import Var
7
8
 
8
9
  from ..base import (
@@ -61,17 +62,11 @@ class Slider(RadixThemesComponent):
61
62
  # Props to rename
62
63
  _rename_props = {"onChange": "onValueChange"}
63
64
 
64
- def get_event_triggers(self) -> Dict[str, Any]:
65
- """Get the events triggers signatures for the component.
65
+ # Fired when the value of the slider changes.
66
+ on_change: EventHandler[lambda e0: [e0]]
66
67
 
67
- Returns:
68
- The signatures of the event triggers.
69
- """
70
- return {
71
- **super().get_event_triggers(),
72
- EventTriggers.ON_CHANGE: lambda e0: [e0],
73
- EventTriggers.ON_VALUE_COMMIT: lambda e0: [e0],
74
- }
68
+ # Fired when a thumb is released after being dragged.
69
+ on_value_commit: EventHandler[lambda e0: [e0]]
75
70
 
76
71
  @classmethod
77
72
  def create(
@@ -7,14 +7,13 @@ from typing import Any, Dict, Literal, Optional, Union, overload
7
7
  from reflex.vars import Var, BaseVar, ComputedVar
8
8
  from reflex.event import EventChain, EventHandler, EventSpec
9
9
  from reflex.style import Style
10
- from typing import Any, Dict, List, Literal, Optional, Union
10
+ from typing import List, Literal, Optional, Union
11
11
  from reflex.components.component import Component
12
- from reflex.constants import EventTriggers
12
+ from reflex.event import EventHandler
13
13
  from reflex.vars import Var
14
14
  from ..base import LiteralAccentColor, RadixThemesComponent
15
15
 
16
16
  class Slider(RadixThemesComponent):
17
- def get_event_triggers(self) -> Dict[str, Any]: ...
18
17
  @overload
19
18
  @classmethod
20
19
  def create( # type: ignore
@@ -1,7 +1,8 @@
1
1
  """Interactive components provided by @radix-ui/themes."""
2
- from typing import Any, Dict, Literal
3
2
 
4
- from reflex.constants import EventTriggers
3
+ from typing import Literal
4
+
5
+ from reflex.event import EventHandler
5
6
  from reflex.vars import Var
6
7
 
7
8
  from ..base import (
@@ -56,16 +57,8 @@ class Switch(RadixThemesComponent):
56
57
  # Props to rename
57
58
  _rename_props = {"onChange": "onCheckedChange"}
58
59
 
59
- def get_event_triggers(self) -> Dict[str, Any]:
60
- """Get the event triggers that pass the component's value to the handler.
61
-
62
- Returns:
63
- A dict mapping the event trigger name to the argspec passed to the handler.
64
- """
65
- return {
66
- **super().get_event_triggers(),
67
- EventTriggers.ON_CHANGE: lambda checked: [checked],
68
- }
60
+ # Fired when the value of the switch changes
61
+ on_change: EventHandler[lambda checked: [checked]]
69
62
 
70
63
 
71
64
  switch = Switch.create
@@ -7,15 +7,14 @@ from typing import Any, Dict, Literal, Optional, Union, overload
7
7
  from reflex.vars import Var, BaseVar, ComputedVar
8
8
  from reflex.event import EventChain, EventHandler, EventSpec
9
9
  from reflex.style import Style
10
- from typing import Any, Dict, Literal
11
- from reflex.constants import EventTriggers
10
+ from typing import Literal
11
+ from reflex.event import EventHandler
12
12
  from reflex.vars import Var
13
13
  from ..base import LiteralAccentColor, RadixThemesComponent
14
14
 
15
15
  LiteralSwitchSize = Literal["1", "2", "3"]
16
16
 
17
17
  class Switch(RadixThemesComponent):
18
- def get_event_triggers(self) -> Dict[str, Any]: ...
19
18
  @overload
20
19
  @classmethod
21
20
  def create( # type: ignore
@@ -1,4 +1,5 @@
1
1
  """Interactive components provided by @radix-ui/themes."""
2
+
2
3
  from typing import List, Literal
3
4
 
4
5
  from reflex.components.component import ComponentNamespace
@@ -1,11 +1,12 @@
1
1
  """Interactive components provided by @radix-ui/themes."""
2
+
2
3
  from __future__ import annotations
3
4
 
4
5
  from typing import Any, Dict, List, Literal
5
6
 
6
7
  from reflex.components.component import Component, ComponentNamespace
7
8
  from reflex.components.core.colors import color
8
- from reflex.constants import EventTriggers
9
+ from reflex.event import EventHandler
9
10
  from reflex.vars import Var
10
11
 
11
12
  from ..base import (
@@ -33,16 +34,8 @@ class TabsRoot(RadixThemesComponent):
33
34
  # Props to rename
34
35
  _rename_props = {"onChange": "onValueChange"}
35
36
 
36
- def get_event_triggers(self) -> Dict[str, Any]:
37
- """Get the events triggers signatures for the component.
38
-
39
- Returns:
40
- The signatures of the event triggers.
41
- """
42
- return {
43
- **super().get_event_triggers(),
44
- EventTriggers.ON_CHANGE: lambda e0: [e0],
45
- }
37
+ # Fired when the value of the tabs changes.
38
+ on_change: EventHandler[lambda e0: [e0]]
46
39
 
47
40
  def add_style(self) -> Dict[str, Any] | None:
48
41
  """Add style for the component.
@@ -10,14 +10,13 @@ from reflex.style import Style
10
10
  from typing import Any, Dict, List, Literal
11
11
  from reflex.components.component import Component, ComponentNamespace
12
12
  from reflex.components.core.colors import color
13
- from reflex.constants import EventTriggers
13
+ from reflex.event import EventHandler
14
14
  from reflex.vars import Var
15
15
  from ..base import LiteralAccentColor, RadixThemesComponent
16
16
 
17
17
  vertical_orientation_css = "&[data-orientation='vertical']"
18
18
 
19
19
  class TabsRoot(RadixThemesComponent):
20
- def get_event_triggers(self) -> Dict[str, Any]: ...
21
20
  def add_style(self) -> Dict[str, Any] | None: ...
22
21
  @overload
23
22
  @classmethod
@@ -335,6 +334,7 @@ class TabsTrigger(RadixThemesComponent):
335
334
  The TabsTrigger Component.
336
335
  """
337
336
  ...
337
+
338
338
  def add_style(self) -> Dict[str, Any] | None: ...
339
339
 
340
340
  class TabsContent(RadixThemesComponent):
@@ -1,10 +1,11 @@
1
1
  """Interactive components provided by @radix-ui/themes."""
2
- from typing import Any, Dict, Literal, Union
2
+
3
+ from typing import Literal, Union
3
4
 
4
5
  from reflex.components.component import Component
5
6
  from reflex.components.core.debounce import DebounceInput
6
7
  from reflex.components.el import elements
7
- from reflex.constants import EventTriggers
8
+ from reflex.event import EventHandler
8
9
  from reflex.vars import Var
9
10
 
10
11
  from ..base import (
@@ -80,6 +81,21 @@ class TextArea(RadixThemesComponent, elements.Textarea):
80
81
  # How the text in the textarea is to be wrapped when submitting the form
81
82
  wrap: Var[str]
82
83
 
84
+ # Fired when the value of the textarea changes.
85
+ on_change: EventHandler[lambda e0: [e0.target.value]]
86
+
87
+ # Fired when the textarea is focused.
88
+ on_focus: EventHandler[lambda e0: [e0.target.value]]
89
+
90
+ # Fired when the textarea is blurred.
91
+ on_blur: EventHandler[lambda e0: [e0.target.value]]
92
+
93
+ # Fired when a key is pressed down.
94
+ on_key_down: EventHandler[lambda e0: [e0.key]]
95
+
96
+ # Fired when a key is released.
97
+ on_key_up: EventHandler[lambda e0: [e0.key]]
98
+
83
99
  @classmethod
84
100
  def create(cls, *children, **props) -> Component:
85
101
  """Create an Input component.
@@ -91,25 +107,10 @@ class TextArea(RadixThemesComponent, elements.Textarea):
91
107
  Returns:
92
108
  The component.
93
109
  """
94
- if props.get("value") is not None and props.get("on_change"):
110
+ if props.get("value") is not None and props.get("on_change") is not None:
95
111
  # create a debounced input if the user requests full control to avoid typing jank
96
112
  return DebounceInput.create(super().create(*children, **props))
97
113
  return super().create(*children, **props)
98
114
 
99
- def get_event_triggers(self) -> Dict[str, Any]:
100
- """Get the event triggers that pass the component's value to the handler.
101
-
102
- Returns:
103
- A dict mapping the event trigger to the var that is passed to the handler.
104
- """
105
- return {
106
- **super().get_event_triggers(),
107
- EventTriggers.ON_CHANGE: lambda e0: [e0.target.value],
108
- EventTriggers.ON_FOCUS: lambda e0: [e0.target.value],
109
- EventTriggers.ON_BLUR: lambda e0: [e0.target.value],
110
- EventTriggers.ON_KEY_DOWN: lambda e0: [e0.key],
111
- EventTriggers.ON_KEY_UP: lambda e0: [e0.key],
112
- }
113
-
114
115
 
115
116
  text_area = TextArea.create
@@ -7,11 +7,11 @@ from typing import Any, Dict, Literal, Optional, Union, overload
7
7
  from reflex.vars import Var, BaseVar, ComputedVar
8
8
  from reflex.event import EventChain, EventHandler, EventSpec
9
9
  from reflex.style import Style
10
- from typing import Any, Dict, Literal, Union
10
+ from typing import Literal, Union
11
11
  from reflex.components.component import Component
12
12
  from reflex.components.core.debounce import DebounceInput
13
13
  from reflex.components.el import elements
14
- from reflex.constants import EventTriggers
14
+ from reflex.event import EventHandler
15
15
  from reflex.vars import Var
16
16
  from ..base import LiteralAccentColor, LiteralRadius, RadixThemesComponent
17
17
 
@@ -280,6 +280,5 @@ class TextArea(RadixThemesComponent, elements.Textarea):
280
280
  The component.
281
281
  """
282
282
  ...
283
- def get_event_triggers(self) -> Dict[str, Any]: ...
284
283
 
285
284
  text_area = TextArea.create
@@ -1,13 +1,14 @@
1
1
  """Interactive components provided by @radix-ui/themes."""
2
+
2
3
  from __future__ import annotations
3
4
 
4
- from typing import Any, Dict, Literal, Union
5
+ from typing import Literal, Union
5
6
 
6
7
  from reflex.components.base.fragment import Fragment
7
8
  from reflex.components.component import Component, ComponentNamespace
8
9
  from reflex.components.core.debounce import DebounceInput
9
10
  from reflex.components.el import elements
10
- from reflex.constants import EventTriggers
11
+ from reflex.event import EventHandler
11
12
  from reflex.style import Style, format_as_emotion
12
13
  from reflex.utils import console
13
14
  from reflex.vars import Var
@@ -72,6 +73,21 @@ class TextFieldRoot(elements.Div, RadixThemesComponent):
72
73
  # Value of the input
73
74
  value: Var[Union[str, int, float]]
74
75
 
76
+ # Fired when the value of the textarea changes.
77
+ on_change: EventHandler[lambda e0: [e0.target.value]]
78
+
79
+ # Fired when the textarea is focused.
80
+ on_focus: EventHandler[lambda e0: [e0.target.value]]
81
+
82
+ # Fired when the textarea is blurred.
83
+ on_blur: EventHandler[lambda e0: [e0.target.value]]
84
+
85
+ # Fired when a key is pressed down.
86
+ on_key_down: EventHandler[lambda e0: [e0.key]]
87
+
88
+ # Fired when a key is released.
89
+ on_key_up: EventHandler[lambda e0: [e0.key]]
90
+
75
91
  @classmethod
76
92
  def create(cls, *children, **props) -> Component:
77
93
  """Create an Input component.
@@ -84,7 +100,7 @@ class TextFieldRoot(elements.Div, RadixThemesComponent):
84
100
  The component.
85
101
  """
86
102
  component = super().create(*children, **props)
87
- if props.get("value") is not None and props.get("on_change"):
103
+ if props.get("value") is not None and props.get("on_change") is not None:
88
104
  # create a debounced input if the user requests full control to avoid typing jank
89
105
  return DebounceInput.create(component)
90
106
  return component
@@ -163,21 +179,6 @@ class TextFieldRoot(elements.Div, RadixThemesComponent):
163
179
  )
164
180
  return cls.create(*children, **props)
165
181
 
166
- def get_event_triggers(self) -> Dict[str, Any]:
167
- """Get the event triggers that pass the component's value to the handler.
168
-
169
- Returns:
170
- A dict mapping the event trigger to the var that is passed to the handler.
171
- """
172
- return {
173
- **super().get_event_triggers(),
174
- EventTriggers.ON_CHANGE: lambda e0: [e0.target.value],
175
- EventTriggers.ON_FOCUS: lambda e0: [e0.target.value],
176
- EventTriggers.ON_BLUR: lambda e0: [e0.target.value],
177
- EventTriggers.ON_KEY_DOWN: lambda e0: [e0.key],
178
- EventTriggers.ON_KEY_UP: lambda e0: [e0.key],
179
- }
180
-
181
182
 
182
183
  class TextFieldSlot(RadixThemesComponent):
183
184
  """Contains icons or buttons associated with an Input."""
@@ -7,12 +7,12 @@ from typing import Any, Dict, Literal, Optional, Union, overload
7
7
  from reflex.vars import Var, BaseVar, ComputedVar
8
8
  from reflex.event import EventChain, EventHandler, EventSpec
9
9
  from reflex.style import Style
10
- from typing import Any, Dict, Literal, Union
10
+ from typing import Literal, Union
11
11
  from reflex.components.base.fragment import Fragment
12
12
  from reflex.components.component import Component, ComponentNamespace
13
13
  from reflex.components.core.debounce import DebounceInput
14
14
  from reflex.components.el import elements
15
- from reflex.constants import EventTriggers
15
+ from reflex.event import EventHandler
16
16
  from reflex.style import Style, format_as_emotion
17
17
  from reflex.utils import console
18
18
  from reflex.vars import Var
@@ -266,11 +266,11 @@ class TextFieldRoot(elements.Div, RadixThemesComponent):
266
266
  The component.
267
267
  """
268
268
  ...
269
+
269
270
  @classmethod
270
271
  def create_root_deprecated(cls, *children, **props) -> Component: ...
271
272
  @classmethod
272
273
  def create_input_deprecated(cls, *children, **props) -> Component: ...
273
- def get_event_triggers(self) -> Dict[str, Any]: ...
274
274
 
275
275
  class TextFieldSlot(RadixThemesComponent):
276
276
  @overload
@@ -1,8 +1,9 @@
1
1
  """Interactive components provided by @radix-ui/themes."""
2
- from typing import Any, Dict, Literal, Union
2
+
3
+ from typing import Dict, Literal, Union
3
4
 
4
5
  from reflex.components.component import Component
5
- from reflex.constants import EventTriggers
6
+ from reflex.event import EventHandler
6
7
  from reflex.utils import format
7
8
  from reflex.vars import Var
8
9
 
@@ -83,18 +84,14 @@ class Tooltip(RadixThemesComponent):
83
84
  # By default, screenreaders will announce the content inside the component. If this is not descriptive enough, or you have content that cannot be announced, use aria-label as a more descriptive label.
84
85
  aria_label: Var[str]
85
86
 
86
- def get_event_triggers(self) -> Dict[str, Any]:
87
- """Get the events triggers signatures for the component.
87
+ # Fired when the open state changes.
88
+ on_open_change: EventHandler[lambda e0: [e0.target.value]]
88
89
 
89
- Returns:
90
- The signatures of the event triggers.
91
- """
92
- return {
93
- **super().get_event_triggers(),
94
- EventTriggers.ON_OPEN_CHANGE: lambda e0: [e0.target.value],
95
- EventTriggers.ON_ESCAPE_KEY_DOWN: lambda e0: [e0.target.value],
96
- EventTriggers.ON_POINTER_DOWN_OUTSIDE: lambda e0: [e0.target.value],
97
- }
90
+ # Fired when the escape key is pressed.
91
+ on_escape_key_down: EventHandler[lambda e0: [e0.target.value]]
92
+
93
+ # Fired when the pointer is down outside the tooltip.
94
+ on_pointer_down_outside: EventHandler[lambda e0: [e0.target.value]]
98
95
 
99
96
  @classmethod
100
97
  def create(cls, *children, **props) -> Component:
@@ -7,9 +7,9 @@ from typing import Any, Dict, Literal, Optional, Union, overload
7
7
  from reflex.vars import Var, BaseVar, ComputedVar
8
8
  from reflex.event import EventChain, EventHandler, EventSpec
9
9
  from reflex.style import Style
10
- from typing import Any, Dict, Literal, Union
10
+ from typing import Dict, Literal, Union
11
11
  from reflex.components.component import Component
12
- from reflex.constants import EventTriggers
12
+ from reflex.event import EventHandler
13
13
  from reflex.utils import format
14
14
  from reflex.vars import Var
15
15
  from ..base import RadixThemesComponent
@@ -19,7 +19,6 @@ LiteralAlignType = Literal["start", "center", "end"]
19
19
  LiteralStickyType = Literal["partial", "always"]
20
20
 
21
21
  class Tooltip(RadixThemesComponent):
22
- def get_event_triggers(self) -> Dict[str, Any]: ...
23
22
  @overload
24
23
  @classmethod
25
24
  def create( # type: ignore
@@ -1,4 +1,5 @@
1
1
  """Layout components."""
2
+
2
3
  from __future__ import annotations
3
4
 
4
5
  from reflex import RADIX_THEMES_LAYOUT_MAPPING
@@ -1,4 +1,5 @@
1
1
  """Declarative layout and common spacing props."""
2
+
2
3
  from __future__ import annotations
3
4
 
4
5
  from reflex.components.el import elements
@@ -1,4 +1,5 @@
1
1
  """Declarative layout and common spacing props."""
2
+
2
3
  from __future__ import annotations
3
4
 
4
5
  from typing import Literal
@@ -1,4 +1,5 @@
1
1
  """List components."""
2
+
2
3
  from __future__ import annotations
3
4
 
4
5
  from typing import Any, Iterable, Literal, Optional, Union
@@ -156,6 +156,7 @@ class BaseList(Component):
156
156
 
157
157
  """
158
158
  ...
159
+
159
160
  def add_style(self) -> dict[str, Any] | None: ...
160
161
 
161
162
  class UnorderedList(BaseList, Ul):
@@ -1,4 +1,5 @@
1
1
  """Declarative layout and common spacing props."""
2
+
2
3
  from __future__ import annotations
3
4
 
4
5
  from typing import Literal
@@ -1,4 +1,5 @@
1
1
  """Typographic components."""
2
+
2
3
  from __future__ import annotations
3
4
 
4
5
  from reflex import RADIX_THEMES_TYPOGRAPHY_MAPPING
@@ -2,6 +2,7 @@
2
2
 
3
3
  https://www.radix-ui.com/themes/docs/theme/typography
4
4
  """
5
+
5
6
  from __future__ import annotations
6
7
 
7
8
  from typing import Literal
@@ -2,6 +2,7 @@
2
2
 
3
3
  https://www.radix-ui.com/themes/docs/theme/typography
4
4
  """
5
+
5
6
  from __future__ import annotations
6
7
 
7
8
  from reflex.components.el import elements
@@ -2,6 +2,7 @@
2
2
 
3
3
  https://www.radix-ui.com/themes/docs/theme/typography
4
4
  """
5
+
5
6
  from __future__ import annotations
6
7
 
7
8
  from reflex.components.el import elements
@@ -2,6 +2,7 @@
2
2
 
3
3
  https://www.radix-ui.com/themes/docs/theme/typography
4
4
  """
5
+
5
6
  from __future__ import annotations
6
7
 
7
8
  from reflex.components.el import elements
@@ -12,7 +12,7 @@ from reflex.components.core.colors import color
12
12
  from reflex.components.core.cond import cond
13
13
  from reflex.components.el.elements.inline import A
14
14
  from reflex.components.next.link import NextLink
15
- from reflex.utils import imports
15
+ from reflex.utils.imports import ImportDict
16
16
  from reflex.vars import Var
17
17
 
18
18
  from ..base import (
@@ -59,8 +59,13 @@ class Link(RadixThemesComponent, A, MemoizationLeaf):
59
59
  # If True, the link will open in a new tab
60
60
  is_external: Var[bool]
61
61
 
62
- def _get_imports(self) -> imports.ImportDict:
63
- return {**super()._get_imports(), **next_link._get_imports()}
62
+ def add_imports(self) -> ImportDict:
63
+ """Add imports for the Link component.
64
+
65
+ Returns:
66
+ The import dict.
67
+ """
68
+ return next_link._get_imports() # type: ignore
64
69
 
65
70
  @classmethod
66
71
  def create(cls, *children, **props) -> Component:
@@ -13,7 +13,7 @@ from reflex.components.core.colors import color
13
13
  from reflex.components.core.cond import cond
14
14
  from reflex.components.el.elements.inline import A
15
15
  from reflex.components.next.link import NextLink
16
- from reflex.utils import imports
16
+ from reflex.utils.imports import ImportDict
17
17
  from reflex.vars import Var
18
18
  from ..base import LiteralAccentColor, RadixThemesComponent
19
19
  from .base import LiteralTextSize, LiteralTextTrim, LiteralTextWeight
@@ -22,6 +22,7 @@ LiteralLinkUnderline = Literal["auto", "hover", "always", "none"]
22
22
  next_link = NextLink.create()
23
23
 
24
24
  class Link(RadixThemesComponent, A, MemoizationLeaf):
25
+ def add_imports(self) -> ImportDict: ...
25
26
  @overload
26
27
  @classmethod
27
28
  def create( # type: ignore
@@ -1,4 +1,5 @@
1
1
  """A audio component."""
2
+
2
3
  from reflex.components.react_player.react_player import ReactPlayer
3
4
 
4
5
 
@@ -35,15 +35,39 @@ class Audio(ReactPlayer):
35
35
  on_blur: Optional[
36
36
  Union[EventHandler, EventSpec, list, function, BaseVar]
37
37
  ] = None,
38
+ on_buffer: Optional[
39
+ Union[EventHandler, EventSpec, list, function, BaseVar]
40
+ ] = None,
41
+ on_buffer_end: Optional[
42
+ Union[EventHandler, EventSpec, list, function, BaseVar]
43
+ ] = None,
38
44
  on_click: Optional[
39
45
  Union[EventHandler, EventSpec, list, function, BaseVar]
40
46
  ] = None,
47
+ on_click_preview: Optional[
48
+ Union[EventHandler, EventSpec, list, function, BaseVar]
49
+ ] = None,
41
50
  on_context_menu: Optional[
42
51
  Union[EventHandler, EventSpec, list, function, BaseVar]
43
52
  ] = None,
53
+ on_disable_pip: Optional[
54
+ Union[EventHandler, EventSpec, list, function, BaseVar]
55
+ ] = None,
44
56
  on_double_click: Optional[
45
57
  Union[EventHandler, EventSpec, list, function, BaseVar]
46
58
  ] = None,
59
+ on_duration: Optional[
60
+ Union[EventHandler, EventSpec, list, function, BaseVar]
61
+ ] = None,
62
+ on_enable_pip: Optional[
63
+ Union[EventHandler, EventSpec, list, function, BaseVar]
64
+ ] = None,
65
+ on_ended: Optional[
66
+ Union[EventHandler, EventSpec, list, function, BaseVar]
67
+ ] = None,
68
+ on_error: Optional[
69
+ Union[EventHandler, EventSpec, list, function, BaseVar]
70
+ ] = None,
47
71
  on_focus: Optional[
48
72
  Union[EventHandler, EventSpec, list, function, BaseVar]
49
73
  ] = None,
@@ -71,9 +95,33 @@ class Audio(ReactPlayer):
71
95
  on_mouse_up: Optional[
72
96
  Union[EventHandler, EventSpec, list, function, BaseVar]
73
97
  ] = None,
98
+ on_pause: Optional[
99
+ Union[EventHandler, EventSpec, list, function, BaseVar]
100
+ ] = None,
101
+ on_play: Optional[
102
+ Union[EventHandler, EventSpec, list, function, BaseVar]
103
+ ] = None,
104
+ on_playback_quality_change: Optional[
105
+ Union[EventHandler, EventSpec, list, function, BaseVar]
106
+ ] = None,
107
+ on_playback_rate_change: Optional[
108
+ Union[EventHandler, EventSpec, list, function, BaseVar]
109
+ ] = None,
110
+ on_progress: Optional[
111
+ Union[EventHandler, EventSpec, list, function, BaseVar]
112
+ ] = None,
113
+ on_ready: Optional[
114
+ Union[EventHandler, EventSpec, list, function, BaseVar]
115
+ ] = None,
74
116
  on_scroll: Optional[
75
117
  Union[EventHandler, EventSpec, list, function, BaseVar]
76
118
  ] = None,
119
+ on_seek: Optional[
120
+ Union[EventHandler, EventSpec, list, function, BaseVar]
121
+ ] = None,
122
+ on_start: Optional[
123
+ Union[EventHandler, EventSpec, list, function, BaseVar]
124
+ ] = None,
77
125
  on_unmount: Optional[
78
126
  Union[EventHandler, EventSpec, list, function, BaseVar]
79
127
  ] = None,