reflex 0.5.4a3__py3-none-any.whl → 0.5.5a1__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 (260) 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/exec.py +17 -9
  246. reflex/utils/export.py +13 -9
  247. reflex/utils/imports.py +34 -5
  248. reflex/utils/lazy_loader.py +1 -0
  249. reflex/utils/path_ops.py +39 -33
  250. reflex/utils/prerequisites.py +35 -27
  251. reflex/utils/processes.py +1 -1
  252. reflex/utils/serializers.py +3 -6
  253. reflex/utils/watch.py +3 -1
  254. reflex/vars.py +26 -10
  255. reflex/vars.pyi +3 -3
  256. {reflex-0.5.4a3.dist-info → reflex-0.5.5a1.dist-info}/METADATA +2 -2
  257. {reflex-0.5.4a3.dist-info → reflex-0.5.5a1.dist-info}/RECORD +260 -260
  258. {reflex-0.5.4a3.dist-info → reflex-0.5.5a1.dist-info}/LICENSE +0 -0
  259. {reflex-0.5.4a3.dist-info → reflex-0.5.5a1.dist-info}/WHEEL +0 -0
  260. {reflex-0.5.4a3.dist-info → reflex-0.5.5a1.dist-info}/entry_points.txt +0 -0
@@ -1,8 +1,9 @@
1
1
  """Interactive components provided by @radix-ui/themes."""
2
- from typing import Any, Dict, List, Literal, Union
2
+
3
+ from typing import Dict, List, Literal, Union
3
4
 
4
5
  from reflex.components.component import ComponentNamespace
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 (
@@ -47,16 +48,8 @@ class DropdownMenuRoot(RadixThemesComponent):
47
48
 
48
49
  _invalid_children: List[str] = ["DropdownMenuItem"]
49
50
 
50
- def get_event_triggers(self) -> Dict[str, Any]:
51
- """Get the events triggers signatures for the component.
52
-
53
- Returns:
54
- The signatures of the event triggers.
55
- """
56
- return {
57
- **super().get_event_triggers(),
58
- EventTriggers.ON_OPEN_CHANGE: lambda e0: [e0],
59
- }
51
+ # Fired when the open state changes.
52
+ on_open_change: EventHandler[lambda e0: [e0]]
60
53
 
61
54
 
62
55
  class DropdownMenuTrigger(RadixThemesTriggerComponent):
@@ -125,20 +118,20 @@ class DropdownMenuContent(RadixThemesComponent):
125
118
  # Whether to hide the content when the trigger becomes fully occluded. Defaults to False.
126
119
  hide_when_detached: Var[bool]
127
120
 
128
- def get_event_triggers(self) -> Dict[str, Any]:
129
- """Get the events triggers signatures for the component.
121
+ # Fired when the dialog is closed.
122
+ on_close_auto_focus: EventHandler[lambda e0: [e0]]
123
+
124
+ # Fired when the escape key is pressed.
125
+ on_escape_key_down: EventHandler[lambda e0: [e0]]
126
+
127
+ # Fired when the pointer is down outside the dialog.
128
+ on_pointer_down_outside: EventHandler[lambda e0: [e0]]
129
+
130
+ # Fired when focus moves outside the dialog.
131
+ on_focus_outside: EventHandler[lambda e0: [e0]]
130
132
 
131
- Returns:
132
- The signatures of the event triggers.
133
- """
134
- return {
135
- **super().get_event_triggers(),
136
- EventTriggers.ON_CLOSE_AUTO_FOCUS: lambda e0: [e0],
137
- EventTriggers.ON_ESCAPE_KEY_DOWN: lambda e0: [e0],
138
- EventTriggers.ON_POINTER_DOWN_OUTSIDE: lambda e0: [e0],
139
- EventTriggers.ON_FOCUS_OUTSIDE: lambda e0: [e0],
140
- EventTriggers.ON_INTERACT_OUTSIDE: lambda e0: [e0],
141
- }
133
+ # Fired when the pointer interacts outside the dialog.
134
+ on_interact_outside: EventHandler[lambda e0: [e0]]
142
135
 
143
136
 
144
137
  class DropdownMenuSubTrigger(RadixThemesTriggerComponent):
@@ -169,16 +162,8 @@ class DropdownMenuSub(RadixThemesComponent):
169
162
  # The open state of the submenu when it is initially rendered. Use when you do not need to control its open state.
170
163
  default_open: Var[bool]
171
164
 
172
- def get_event_triggers(self) -> Dict[str, Any]:
173
- """Get the events triggers signatures for the component.
174
-
175
- Returns:
176
- The signatures of the event triggers.
177
- """
178
- return {
179
- **super().get_event_triggers(),
180
- EventTriggers.ON_OPEN_CHANGE: lambda e0: [e0.target.value],
181
- }
165
+ # Fired when the open state changes.
166
+ on_open_change: EventHandler[lambda e0: [e0.target.value]]
182
167
 
183
168
 
184
169
  class DropdownMenuSubContent(RadixThemesComponent):
@@ -218,19 +203,17 @@ class DropdownMenuSubContent(RadixThemesComponent):
218
203
 
219
204
  _valid_parents: List[str] = ["DropdownMenuSub"]
220
205
 
221
- def get_event_triggers(self) -> Dict[str, Any]:
222
- """Get the events triggers signatures for the component.
206
+ # Fired when the escape key is pressed.
207
+ on_escape_key_down: EventHandler[lambda e0: [e0]]
208
+
209
+ # Fired when the pointer is down outside the dialog.
210
+ on_pointer_down_outside: EventHandler[lambda e0: [e0]]
223
211
 
224
- Returns:
225
- The signatures of the event triggers.
226
- """
227
- return {
228
- **super().get_event_triggers(),
229
- EventTriggers.ON_ESCAPE_KEY_DOWN: lambda e0: [e0],
230
- EventTriggers.ON_POINTER_DOWN_OUTSIDE: lambda e0: [e0],
231
- EventTriggers.ON_FOCUS_OUTSIDE: lambda e0: [e0],
232
- EventTriggers.ON_INTERACT_OUTSIDE: lambda e0: [e0],
233
- }
212
+ # Fired when focus moves outside the dialog.
213
+ on_focus_outside: EventHandler[lambda e0: [e0]]
214
+
215
+ # Fired when the pointer interacts outside the dialog.
216
+ on_interact_outside: EventHandler[lambda e0: [e0]]
234
217
 
235
218
 
236
219
  class DropdownMenuItem(RadixThemesComponent):
@@ -255,16 +238,8 @@ class DropdownMenuItem(RadixThemesComponent):
255
238
 
256
239
  _valid_parents: List[str] = ["DropdownMenuContent", "DropdownMenuSubContent"]
257
240
 
258
- def get_event_triggers(self) -> Dict[str, Any]:
259
- """Get the events triggers signatures for the component.
260
-
261
- Returns:
262
- The signatures of the event triggers.
263
- """
264
- return {
265
- **super().get_event_triggers(),
266
- EventTriggers.ON_SELECT: lambda e0: [e0.target.value],
267
- }
241
+ # Fired when the item is selected.
242
+ on_select: EventHandler[lambda e0: [e0.target.value]]
268
243
 
269
244
 
270
245
  class DropdownMenuSeparator(RadixThemesComponent):
@@ -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, List, Literal, Union
10
+ from typing import Dict, List, Literal, Union
11
11
  from reflex.components.component import ComponentNamespace
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, RadixThemesTriggerComponent
15
15
 
@@ -21,7 +21,6 @@ LiteralAlignType = Literal["start", "center", "end"]
21
21
  LiteralStickyType = Literal["partial", "always"]
22
22
 
23
23
  class DropdownMenuRoot(RadixThemesComponent):
24
- def get_event_triggers(self) -> Dict[str, Any]: ...
25
24
  @overload
26
25
  @classmethod
27
26
  def create( # type: ignore
@@ -183,7 +182,6 @@ class DropdownMenuTrigger(RadixThemesTriggerComponent):
183
182
  ...
184
183
 
185
184
  class DropdownMenuContent(RadixThemesComponent):
186
- def get_event_triggers(self) -> Dict[str, Any]: ...
187
185
  @overload
188
186
  @classmethod
189
187
  def create( # type: ignore
@@ -465,7 +463,6 @@ class DropdownMenuSubTrigger(RadixThemesTriggerComponent):
465
463
  ...
466
464
 
467
465
  class DropdownMenuSub(RadixThemesComponent):
468
- def get_event_triggers(self) -> Dict[str, Any]: ...
469
466
  @overload
470
467
  @classmethod
471
468
  def create( # type: ignore
@@ -552,7 +549,6 @@ class DropdownMenuSub(RadixThemesComponent):
552
549
  ...
553
550
 
554
551
  class DropdownMenuSubContent(RadixThemesComponent):
555
- def get_event_triggers(self) -> Dict[str, Any]: ...
556
552
  @overload
557
553
  @classmethod
558
554
  def create( # type: ignore
@@ -673,7 +669,6 @@ class DropdownMenuSubContent(RadixThemesComponent):
673
669
  ...
674
670
 
675
671
  class DropdownMenuItem(RadixThemesComponent):
676
- def get_event_triggers(self) -> Dict[str, Any]: ...
677
672
  @overload
678
673
  @classmethod
679
674
  def create( # type: ignore
@@ -1,9 +1,10 @@
1
1
  """Interactive components provided by @radix-ui/themes."""
2
- from typing import Any, Dict, Literal
2
+
3
+ from typing import Literal
3
4
 
4
5
  from reflex.components.component import ComponentNamespace
5
6
  from reflex.components.el import elements
6
- from reflex.constants import EventTriggers
7
+ from reflex.event import EventHandler
7
8
  from reflex.vars import Var
8
9
 
9
10
  from ..base import (
@@ -29,16 +30,8 @@ class HoverCardRoot(RadixThemesComponent):
29
30
  # The duration from when the mouse leaves the trigger until the hover card closes.
30
31
  close_delay: Var[int]
31
32
 
32
- def get_event_triggers(self) -> Dict[str, Any]:
33
- """Get the events triggers signatures for the component.
34
-
35
- Returns:
36
- The signatures of the event triggers.
37
- """
38
- return {
39
- **super().get_event_triggers(),
40
- EventTriggers.ON_OPEN_CHANGE: lambda e0: [e0],
41
- }
33
+ # Fired when the open state changes.
34
+ on_open_change: EventHandler[lambda e0: [e0]]
42
35
 
43
36
 
44
37
  class HoverCardTrigger(RadixThemesTriggerComponent):
@@ -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
10
+ from typing import Literal
11
11
  from reflex.components.component import ComponentNamespace
12
12
  from reflex.components.el import elements
13
- from reflex.constants import EventTriggers
13
+ from reflex.event import EventHandler
14
14
  from reflex.vars import Var
15
15
  from ..base import RadixThemesComponent, RadixThemesTriggerComponent
16
16
 
17
17
  class HoverCardRoot(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 __future__ import annotations
3
4
 
4
5
  from typing import Literal
@@ -281,6 +281,7 @@ class IconButton(elements.Button, RadixLoadingProp, RadixThemesComponent):
281
281
  The IconButton component.
282
282
  """
283
283
  ...
284
+
284
285
  def add_style(self): ...
285
286
 
286
287
  icon_button = IconButton.create
@@ -1,4 +1,5 @@
1
1
  """Interactive components provided by @radix-ui/themes."""
2
+
2
3
  from typing import Literal, Union
3
4
 
4
5
  from reflex.components.el import elements
@@ -1,9 +1,10 @@
1
1
  """Interactive components provided by @radix-ui/themes."""
2
- from typing import Any, Dict, Literal
2
+
3
+ from typing import Literal
3
4
 
4
5
  from reflex.components.component import ComponentNamespace
5
6
  from reflex.components.el import elements
6
- from reflex.constants import EventTriggers
7
+ from reflex.event import EventHandler
7
8
  from reflex.vars import Var
8
9
 
9
10
  from ..base import (
@@ -23,16 +24,8 @@ class PopoverRoot(RadixThemesComponent):
23
24
  # The modality of the popover. When set to true, interaction with outside elements will be disabled and only popover content will be visible to screen readers.
24
25
  modal: Var[bool]
25
26
 
26
- def get_event_triggers(self) -> Dict[str, Any]:
27
- """Get the events triggers signatures for the component.
28
-
29
- Returns:
30
- The signatures of the event triggers.
31
- """
32
- return {
33
- **super().get_event_triggers(),
34
- EventTriggers.ON_OPEN_CHANGE: lambda e0: [e0],
35
- }
27
+ # Fired when the open state changes.
28
+ on_open_change: EventHandler[lambda e0: [e0]]
36
29
 
37
30
 
38
31
  class PopoverTrigger(RadixThemesTriggerComponent):
@@ -64,21 +57,23 @@ class PopoverContent(elements.Div, RadixThemesComponent):
64
57
  # When true, overrides the side andalign preferences to prevent collisions with boundary edges.
65
58
  avoid_collisions: Var[bool]
66
59
 
67
- def get_event_triggers(self) -> Dict[str, Any]:
68
- """Get the events triggers signatures for the component.
69
-
70
- Returns:
71
- The signatures of the event triggers.
72
- """
73
- return {
74
- **super().get_event_triggers(),
75
- EventTriggers.ON_OPEN_AUTO_FOCUS: lambda e0: [e0],
76
- EventTriggers.ON_CLOSE_AUTO_FOCUS: lambda e0: [e0],
77
- EventTriggers.ON_ESCAPE_KEY_DOWN: lambda e0: [e0],
78
- EventTriggers.ON_POINTER_DOWN_OUTSIDE: lambda e0: [e0],
79
- EventTriggers.ON_FOCUS_OUTSIDE: lambda e0: [e0],
80
- EventTriggers.ON_INTERACT_OUTSIDE: lambda e0: [e0],
81
- }
60
+ # Fired when the dialog is opened.
61
+ on_open_auto_focus: EventHandler[lambda e0: [e0]]
62
+
63
+ # Fired when the dialog is closed.
64
+ on_close_auto_focus: EventHandler[lambda e0: [e0]]
65
+
66
+ # Fired when the escape key is pressed.
67
+ on_escape_key_down: EventHandler[lambda e0: [e0]]
68
+
69
+ # Fired when the pointer is down outside the dialog.
70
+ on_pointer_down_outside: EventHandler[lambda e0: [e0]]
71
+
72
+ # Fired when focus moves outside the dialog.
73
+ on_focus_outside: EventHandler[lambda e0: [e0]]
74
+
75
+ # Fired when the pointer interacts outside the dialog.
76
+ on_interact_outside: EventHandler[lambda e0: [e0]]
82
77
 
83
78
 
84
79
  class PopoverClose(RadixThemesTriggerComponent):
@@ -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
10
+ from typing import Literal
11
11
  from reflex.components.component import ComponentNamespace
12
12
  from reflex.components.el import elements
13
- from reflex.constants import EventTriggers
13
+ from reflex.event import EventHandler
14
14
  from reflex.vars import Var
15
15
  from ..base import RadixThemesComponent, RadixThemesTriggerComponent
16
16
 
17
17
  class PopoverRoot(RadixThemesComponent):
18
- def get_event_triggers(self) -> Dict[str, Any]: ...
19
18
  @overload
20
19
  @classmethod
21
20
  def create( # type: ignore
@@ -172,7 +171,6 @@ class PopoverTrigger(RadixThemesTriggerComponent):
172
171
  ...
173
172
 
174
173
  class PopoverContent(elements.Div, RadixThemesComponent):
175
- def get_event_triggers(self) -> Dict[str, Any]: ...
176
174
  @overload
177
175
  @classmethod
178
176
  def create( # type: ignore
@@ -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, List, Literal, Optional, Union
5
+ from typing import List, Literal, Optional, Union
5
6
 
6
7
  import reflex as rx
7
8
  from reflex.components.component import Component, ComponentNamespace
8
9
  from reflex.components.radix.themes.layout.flex import Flex
9
10
  from reflex.components.radix.themes.typography.text import Text
10
- from reflex.constants import EventTriggers
11
+ from reflex.event import EventHandler
11
12
  from reflex.vars import Var
12
13
 
13
14
  from ..base import (
@@ -25,10 +26,12 @@ class RadioGroupRoot(RadixThemesComponent):
25
26
  tag = "RadioGroup.Root"
26
27
 
27
28
  # The size of the radio group: "1" | "2" | "3"
28
- size: Var[Literal["1", "2", "3"]]
29
+ size: Var[Literal["1", "2", "3"]] = Var.create_safe("2", _var_is_string=True)
29
30
 
30
31
  # The variant of the radio group
31
- variant: Var[Literal["classic", "surface", "soft"]]
32
+ variant: Var[Literal["classic", "surface", "soft"]] = Var.create_safe(
33
+ "classic", _var_is_string=True
34
+ )
32
35
 
33
36
  # The color of the radio group
34
37
  color_scheme: Var[LiteralAccentColor]
@@ -54,16 +57,8 @@ class RadioGroupRoot(RadixThemesComponent):
54
57
  # Props to rename
55
58
  _rename_props = {"onChange": "onValueChange"}
56
59
 
57
- def get_event_triggers(self) -> Dict[str, Any]:
58
- """Get the events triggers signatures for the component.
59
-
60
- Returns:
61
- The signatures of the event triggers.
62
- """
63
- return {
64
- **super().get_event_triggers(),
65
- EventTriggers.ON_CHANGE: lambda e0: [e0],
66
- }
60
+ # Fired when the value of the radio group changes.
61
+ on_change: EventHandler[lambda e0: [e0]]
67
62
 
68
63
 
69
64
  class RadioGroupItem(RadixThemesComponent):
@@ -88,7 +83,9 @@ class HighLevelRadioGroup(RadixThemesComponent):
88
83
  items: Var[List[str]]
89
84
 
90
85
  # The direction of the radio group.
91
- direction: Var[LiteralFlexDirection]
86
+ direction: Var[LiteralFlexDirection] = Var.create_safe(
87
+ "column", _var_is_string=True
88
+ )
92
89
 
93
90
  # The gap between the items of the radio group.
94
91
  spacing: Var[LiteralSpacing] = Var.create_safe("2", _var_is_string=True)
@@ -97,7 +94,9 @@ class HighLevelRadioGroup(RadixThemesComponent):
97
94
  size: Var[Literal["1", "2", "3"]] = Var.create_safe("2", _var_is_string=True)
98
95
 
99
96
  # The variant of the radio group
100
- variant: Var[Literal["classic", "surface", "soft"]]
97
+ variant: Var[Literal["classic", "surface", "soft"]] = Var.create_safe(
98
+ "classic", _var_is_string=True
99
+ )
101
100
 
102
101
  # The color of the radio group
103
102
  color_scheme: Var[LiteralAccentColor]
@@ -141,8 +140,12 @@ class HighLevelRadioGroup(RadixThemesComponent):
141
140
  direction = props.pop("direction", "column")
142
141
  spacing = props.pop("spacing", "2")
143
142
  size = props.pop("size", "2")
143
+ variant = props.pop("variant", "classic")
144
+ color_scheme = props.pop("color_scheme", None)
144
145
  default_value = props.pop("default_value", "")
145
146
 
147
+ default_value = Var.create(default_value)
148
+
146
149
  # convert only non-strings to json(JSON.stringify) so quotes are not rendered
147
150
  # for string literal types.
148
151
  if isinstance(default_value, str) or (
@@ -166,7 +169,10 @@ class HighLevelRadioGroup(RadixThemesComponent):
166
169
 
167
170
  return Text.create(
168
171
  Flex.create(
169
- RadioGroupItem.create(value=item_value),
172
+ RadioGroupItem.create(
173
+ value=item_value,
174
+ disabled=props.get("disabled", Var.create(False)),
175
+ ),
170
176
  item_value,
171
177
  spacing="2",
172
178
  ),
@@ -184,6 +190,8 @@ class HighLevelRadioGroup(RadixThemesComponent):
184
190
  spacing=spacing,
185
191
  ),
186
192
  size=size,
193
+ variant=variant,
194
+ color_scheme=color_scheme,
187
195
  default_value=default_value,
188
196
  **props,
189
197
  )
@@ -7,19 +7,18 @@ 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
  import reflex as rx
12
12
  from reflex.components.component import Component, ComponentNamespace
13
13
  from reflex.components.radix.themes.layout.flex import Flex
14
14
  from reflex.components.radix.themes.typography.text import Text
15
- from reflex.constants import EventTriggers
15
+ from reflex.event import EventHandler
16
16
  from reflex.vars import Var
17
17
  from ..base import LiteralAccentColor, LiteralSpacing, RadixThemesComponent
18
18
 
19
19
  LiteralFlexDirection = Literal["row", "column", "row-reverse", "column-reverse"]
20
20
 
21
21
  class RadioGroupRoot(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
  """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,11 @@
1
1
  """SegmentedControl from Radix Themes."""
2
2
 
3
+ from __future__ import annotations
4
+
3
5
  from types import SimpleNamespace
4
- from typing import Literal
6
+ from typing import List, Literal, Union
5
7
 
8
+ from reflex.event import EventHandler
6
9
  from reflex.vars import Var
7
10
 
8
11
  from ..base import LiteralAccentColor, RadixThemesComponent
@@ -11,13 +14,15 @@ from ..base import LiteralAccentColor, RadixThemesComponent
11
14
  class SegmentedControlRoot(RadixThemesComponent):
12
15
  """Root element for a SegmentedControl component."""
13
16
 
14
- tag = "SegmentedControl"
17
+ tag = "SegmentedControl.Root"
15
18
 
16
19
  # The size of the segmented control: "1" | "2" | "3"
17
20
  size: Var[Literal["1", "2", "3"]]
18
21
 
19
- # Variant of button: "classic" | "surface" | "soft"
20
- variant: Var[Literal["classic", "surface", "soft"]]
22
+ # Variant of button: "classic" | "surface"
23
+ variant: Var[Literal["classic", "surface"]]
24
+
25
+ type: Var[Literal["single", "multiple"]]
21
26
 
22
27
  # Override theme color for button
23
28
  color_scheme: Var[LiteralAccentColor]
@@ -26,7 +31,13 @@ class SegmentedControlRoot(RadixThemesComponent):
26
31
  radius: Var[Literal["none", "small", "medium", "large", "full"]]
27
32
 
28
33
  # The default value of the segmented control.
29
- default_value: Var[str]
34
+ default_value: Var[Union[str, List[str]]]
35
+
36
+ value: Var[Union[str, List[str]]]
37
+
38
+ on_change: EventHandler[lambda e0: [e0]]
39
+
40
+ _rename_props = {"onChange": "onValueChange"}
30
41
 
31
42
 
32
43
  class SegmentedControlItem(RadixThemesComponent):
@@ -37,6 +48,8 @@ class SegmentedControlItem(RadixThemesComponent):
37
48
  # The value of the item.
38
49
  value: Var[str]
39
50
 
51
+ _valid_parents: List[str] = ["SegmentedControlRoot"]
52
+
40
53
 
41
54
  class SegmentedControl(SimpleNamespace):
42
55
  """SegmentedControl components namespace."""
@@ -8,7 +8,8 @@ from reflex.vars import Var, BaseVar, ComputedVar
8
8
  from reflex.event import EventChain, EventHandler, EventSpec
9
9
  from reflex.style import Style
10
10
  from types import SimpleNamespace
11
- from typing import Literal
11
+ from typing import List, Literal, Union
12
+ from reflex.event import EventHandler
12
13
  from reflex.vars import Var
13
14
  from ..base import LiteralAccentColor, RadixThemesComponent
14
15
 
@@ -22,10 +23,10 @@ class SegmentedControlRoot(RadixThemesComponent):
22
23
  Union[Var[Literal["1", "2", "3"]], Literal["1", "2", "3"]]
23
24
  ] = None,
24
25
  variant: Optional[
25
- Union[
26
- Var[Literal["classic", "surface", "soft"]],
27
- Literal["classic", "surface", "soft"],
28
- ]
26
+ Union[Var[Literal["classic", "surface"]], Literal["classic", "surface"]]
27
+ ] = None,
28
+ type: Optional[
29
+ Union[Var[Literal["single", "multiple"]], Literal["single", "multiple"]]
29
30
  ] = None,
30
31
  color_scheme: Optional[
31
32
  Union[
@@ -95,7 +96,12 @@ class SegmentedControlRoot(RadixThemesComponent):
95
96
  Literal["none", "small", "medium", "large", "full"],
96
97
  ]
97
98
  ] = None,
98
- default_value: Optional[Union[Var[str], str]] = None,
99
+ default_value: Optional[
100
+ Union[Var[Union[str, List[str]]], Union[str, List[str]]]
101
+ ] = None,
102
+ value: Optional[
103
+ Union[Var[Union[str, List[str]]], Union[str, List[str]]]
104
+ ] = None,
99
105
  style: Optional[Style] = None,
100
106
  key: Optional[Any] = None,
101
107
  id: Optional[Any] = None,
@@ -105,6 +111,9 @@ class SegmentedControlRoot(RadixThemesComponent):
105
111
  on_blur: Optional[
106
112
  Union[EventHandler, EventSpec, list, function, BaseVar]
107
113
  ] = None,
114
+ on_change: Optional[
115
+ Union[EventHandler, EventSpec, list, function, BaseVar]
116
+ ] = None,
108
117
  on_click: Optional[
109
118
  Union[EventHandler, EventSpec, list, function, BaseVar]
110
119
  ] = None,
@@ -157,7 +166,7 @@ class SegmentedControlRoot(RadixThemesComponent):
157
166
  Args:
158
167
  *children: Child components.
159
168
  size: The size of the segmented control: "1" | "2" | "3"
160
- variant: Variant of button: "classic" | "surface" | "soft"
169
+ variant: Variant of button: "classic" | "surface"
161
170
  color_scheme: Override theme color for button
162
171
  radius: The radius of the segmented control: "none" | "small" | "medium" | "large" | "full"
163
172
  default_value: The default value of the segmented control.
@@ -1,9 +1,9 @@
1
1
  """Interactive components provided by @radix-ui/themes."""
2
- from typing import Any, Dict, List, Literal, Union
2
+
3
+ from typing import List, Literal, Union
3
4
 
4
5
  import reflex as rx
5
6
  from reflex.components.component import Component, ComponentNamespace
6
- from reflex.constants import EventTriggers
7
7
  from reflex.vars import Var
8
8
 
9
9
  from ..base import (
@@ -45,17 +45,11 @@ class SelectRoot(RadixThemesComponent):
45
45
  # Props to rename
46
46
  _rename_props = {"onChange": "onValueChange"}
47
47
 
48
- def get_event_triggers(self) -> Dict[str, Any]:
49
- """Get the events triggers signatures for the component.
48
+ # Fired when the value of the select changes.
49
+ on_change: rx.EventHandler[lambda e0: [e0]]
50
50
 
51
- Returns:
52
- The signatures of the event triggers.
53
- """
54
- return {
55
- **super().get_event_triggers(),
56
- EventTriggers.ON_OPEN_CHANGE: lambda e0: [e0],
57
- EventTriggers.ON_CHANGE: lambda e0: [e0],
58
- }
51
+ # Fired when the select is opened or closed.
52
+ on_open_change: rx.EventHandler[lambda e0: [e0]]
59
53
 
60
54
 
61
55
  class SelectTrigger(RadixThemesComponent):
@@ -107,18 +101,14 @@ class SelectContent(RadixThemesComponent):
107
101
  # The vertical distance in pixels from the anchor. Only available when position is set to popper.
108
102
  align_offset: Var[int]
109
103
 
110
- def get_event_triggers(self) -> Dict[str, Any]:
111
- """Get the events triggers signatures for the component.
104
+ # Fired when the select content is closed.
105
+ on_close_auto_focus: rx.EventHandler[lambda e0: [e0]]
112
106
 
113
- Returns:
114
- The signatures of the event triggers.
115
- """
116
- return {
117
- **super().get_event_triggers(),
118
- EventTriggers.ON_CLOSE_AUTO_FOCUS: lambda e0: [e0],
119
- EventTriggers.ON_ESCAPE_KEY_DOWN: lambda e0: [e0],
120
- EventTriggers.ON_POINTER_DOWN_OUTSIDE: lambda e0: [e0],
121
- }
107
+ # Fired when the escape key is pressed.
108
+ on_escape_key_down: rx.EventHandler[lambda e0: [e0]]
109
+
110
+ # Fired when a pointer down event happens outside the select content.
111
+ on_pointer_down_outside: rx.EventHandler[lambda e0: [e0]]
122
112
 
123
113
 
124
114
  class SelectGroup(RadixThemesComponent):