reflex 0.7.14a5__py3-none-any.whl → 0.8.0a1__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 (205) hide show
  1. reflex/.templates/jinja/app/rxconfig.py.jinja2 +4 -1
  2. reflex/.templates/jinja/web/package.json.jinja2 +1 -1
  3. reflex/.templates/jinja/web/pages/_app.js.jinja2 +16 -10
  4. reflex/.templates/jinja/web/pages/_document.js.jinja2 +1 -1
  5. reflex/.templates/jinja/web/pages/base_page.js.jinja2 +0 -1
  6. reflex/.templates/jinja/web/utils/context.js.jinja2 +25 -6
  7. reflex/.templates/web/app/entry.client.js +8 -0
  8. reflex/.templates/web/app/routes.js +10 -0
  9. reflex/.templates/web/components/reflex/radix_themes_color_mode_provider.js +12 -32
  10. reflex/.templates/web/postcss.config.js +1 -1
  11. reflex/.templates/web/react-router.config.js +6 -0
  12. reflex/.templates/web/utils/client_side_routing.js +21 -19
  13. reflex/.templates/web/utils/react-theme.js +89 -0
  14. reflex/.templates/web/utils/state.js +155 -67
  15. reflex/.templates/web/vite.config.js +32 -0
  16. reflex/__init__.py +1 -6
  17. reflex/__init__.pyi +0 -4
  18. reflex/app.py +69 -132
  19. reflex/base.py +1 -87
  20. reflex/compiler/compiler.py +40 -3
  21. reflex/compiler/utils.py +54 -28
  22. reflex/components/__init__.py +0 -2
  23. reflex/components/__init__.pyi +0 -3
  24. reflex/components/base/__init__.py +1 -5
  25. reflex/components/base/__init__.pyi +4 -6
  26. reflex/components/base/app_wrap.pyi +5 -4
  27. reflex/components/base/body.pyi +5 -4
  28. reflex/components/base/document.py +18 -14
  29. reflex/components/base/document.pyi +83 -27
  30. reflex/components/base/error_boundary.pyi +5 -4
  31. reflex/components/base/fragment.pyi +5 -4
  32. reflex/components/base/link.pyi +9 -7
  33. reflex/components/base/meta.pyi +17 -13
  34. reflex/components/base/script.py +60 -58
  35. reflex/components/base/script.pyi +246 -31
  36. reflex/components/base/strict_mode.pyi +5 -4
  37. reflex/components/component.py +109 -194
  38. reflex/components/core/__init__.py +1 -0
  39. reflex/components/core/__init__.pyi +1 -0
  40. reflex/components/core/auto_scroll.pyi +5 -4
  41. reflex/components/core/banner.pyi +25 -19
  42. reflex/components/core/client_side_routing.py +7 -6
  43. reflex/components/core/client_side_routing.pyi +6 -56
  44. reflex/components/core/clipboard.pyi +5 -4
  45. reflex/components/core/debounce.py +1 -0
  46. reflex/components/core/debounce.pyi +5 -4
  47. reflex/components/core/foreach.py +3 -2
  48. reflex/components/core/helmet.py +14 -0
  49. reflex/components/{next/base.pyi → core/helmet.pyi} +10 -7
  50. reflex/components/core/html.pyi +5 -4
  51. reflex/components/core/sticky.pyi +17 -13
  52. reflex/components/core/upload.py +2 -1
  53. reflex/components/core/upload.pyi +21 -16
  54. reflex/components/datadisplay/code.pyi +9 -7
  55. reflex/components/datadisplay/dataeditor.pyi +5 -4
  56. reflex/components/datadisplay/shiki_code_block.pyi +13 -10
  57. reflex/components/dynamic.py +4 -5
  58. reflex/components/el/element.pyi +5 -4
  59. reflex/components/el/elements/base.pyi +5 -4
  60. reflex/components/el/elements/forms.pyi +69 -52
  61. reflex/components/el/elements/inline.pyi +113 -85
  62. reflex/components/el/elements/media.pyi +105 -79
  63. reflex/components/el/elements/metadata.pyi +25 -19
  64. reflex/components/el/elements/other.pyi +29 -22
  65. reflex/components/el/elements/scripts.pyi +13 -10
  66. reflex/components/el/elements/sectioning.pyi +61 -46
  67. reflex/components/el/elements/tables.pyi +41 -31
  68. reflex/components/el/elements/typography.pyi +61 -46
  69. reflex/components/field.py +175 -0
  70. reflex/components/gridjs/datatable.py +2 -2
  71. reflex/components/gridjs/datatable.pyi +11 -9
  72. reflex/components/lucide/icon.py +6 -2
  73. reflex/components/lucide/icon.pyi +15 -10
  74. reflex/components/markdown/markdown.pyi +5 -4
  75. reflex/components/moment/moment.pyi +5 -4
  76. reflex/components/plotly/plotly.pyi +19 -10
  77. reflex/components/props.py +376 -27
  78. reflex/components/radix/primitives/accordion.py +8 -1
  79. reflex/components/radix/primitives/accordion.pyi +29 -22
  80. reflex/components/radix/primitives/base.pyi +9 -7
  81. reflex/components/radix/primitives/drawer.pyi +45 -34
  82. reflex/components/radix/primitives/form.pyi +41 -31
  83. reflex/components/radix/primitives/progress.pyi +21 -16
  84. reflex/components/radix/primitives/slider.pyi +21 -16
  85. reflex/components/radix/themes/base.py +3 -3
  86. reflex/components/radix/themes/base.pyi +33 -25
  87. reflex/components/radix/themes/color_mode.pyi +13 -10
  88. reflex/components/radix/themes/components/alert_dialog.pyi +29 -22
  89. reflex/components/radix/themes/components/aspect_ratio.pyi +5 -4
  90. reflex/components/radix/themes/components/avatar.pyi +5 -4
  91. reflex/components/radix/themes/components/badge.pyi +5 -4
  92. reflex/components/radix/themes/components/button.pyi +5 -4
  93. reflex/components/radix/themes/components/callout.pyi +21 -16
  94. reflex/components/radix/themes/components/card.pyi +5 -4
  95. reflex/components/radix/themes/components/checkbox.pyi +13 -10
  96. reflex/components/radix/themes/components/checkbox_cards.pyi +9 -7
  97. reflex/components/radix/themes/components/checkbox_group.pyi +9 -7
  98. reflex/components/radix/themes/components/context_menu.pyi +53 -40
  99. reflex/components/radix/themes/components/data_list.pyi +17 -13
  100. reflex/components/radix/themes/components/dialog.pyi +29 -22
  101. reflex/components/radix/themes/components/dropdown_menu.pyi +33 -25
  102. reflex/components/radix/themes/components/hover_card.pyi +17 -13
  103. reflex/components/radix/themes/components/icon_button.pyi +5 -4
  104. reflex/components/radix/themes/components/inset.pyi +5 -4
  105. reflex/components/radix/themes/components/popover.pyi +17 -13
  106. reflex/components/radix/themes/components/progress.pyi +5 -4
  107. reflex/components/radix/themes/components/radio.pyi +5 -4
  108. reflex/components/radix/themes/components/radio_cards.pyi +9 -7
  109. reflex/components/radix/themes/components/radio_group.pyi +17 -13
  110. reflex/components/radix/themes/components/scroll_area.pyi +5 -4
  111. reflex/components/radix/themes/components/segmented_control.pyi +9 -7
  112. reflex/components/radix/themes/components/select.pyi +37 -28
  113. reflex/components/radix/themes/components/separator.pyi +5 -4
  114. reflex/components/radix/themes/components/skeleton.pyi +5 -4
  115. reflex/components/radix/themes/components/slider.pyi +5 -4
  116. reflex/components/radix/themes/components/spinner.pyi +5 -4
  117. reflex/components/radix/themes/components/switch.pyi +5 -4
  118. reflex/components/radix/themes/components/table.pyi +29 -22
  119. reflex/components/radix/themes/components/tabs.pyi +21 -16
  120. reflex/components/radix/themes/components/text_area.pyi +5 -4
  121. reflex/components/radix/themes/components/text_field.pyi +13 -10
  122. reflex/components/radix/themes/components/tooltip.pyi +5 -4
  123. reflex/components/radix/themes/layout/base.pyi +5 -4
  124. reflex/components/radix/themes/layout/box.pyi +5 -4
  125. reflex/components/radix/themes/layout/center.pyi +5 -4
  126. reflex/components/radix/themes/layout/container.pyi +5 -4
  127. reflex/components/radix/themes/layout/flex.pyi +5 -4
  128. reflex/components/radix/themes/layout/grid.pyi +5 -4
  129. reflex/components/radix/themes/layout/list.pyi +21 -16
  130. reflex/components/radix/themes/layout/section.pyi +5 -4
  131. reflex/components/radix/themes/layout/spacer.pyi +5 -4
  132. reflex/components/radix/themes/layout/stack.pyi +13 -10
  133. reflex/components/radix/themes/typography/blockquote.pyi +5 -4
  134. reflex/components/radix/themes/typography/code.pyi +5 -4
  135. reflex/components/radix/themes/typography/heading.pyi +5 -4
  136. reflex/components/radix/themes/typography/link.py +42 -9
  137. reflex/components/radix/themes/typography/link.pyi +311 -6
  138. reflex/components/radix/themes/typography/text.pyi +29 -22
  139. reflex/components/react_player/audio.pyi +5 -4
  140. reflex/components/react_player/react_player.pyi +5 -4
  141. reflex/components/react_player/video.pyi +5 -4
  142. reflex/components/recharts/cartesian.py +2 -1
  143. reflex/components/recharts/cartesian.pyi +65 -46
  144. reflex/components/recharts/charts.py +4 -2
  145. reflex/components/recharts/charts.pyi +36 -24
  146. reflex/components/recharts/general.pyi +24 -18
  147. reflex/components/recharts/polar.py +8 -4
  148. reflex/components/recharts/polar.pyi +16 -10
  149. reflex/components/recharts/recharts.pyi +9 -7
  150. reflex/components/sonner/toast.py +2 -2
  151. reflex/components/sonner/toast.pyi +7 -6
  152. reflex/config.py +3 -77
  153. reflex/constants/__init__.py +1 -0
  154. reflex/constants/base.py +38 -8
  155. reflex/constants/compiler.py +4 -2
  156. reflex/constants/event.py +1 -0
  157. reflex/constants/installer.py +23 -16
  158. reflex/constants/state.py +2 -0
  159. reflex/custom_components/custom_components.py +0 -14
  160. reflex/environment.py +1 -1
  161. reflex/event.py +178 -81
  162. reflex/experimental/__init__.py +0 -30
  163. reflex/istate/proxy.py +5 -3
  164. reflex/page.py +0 -27
  165. reflex/plugins/__init__.py +3 -2
  166. reflex/plugins/base.py +5 -1
  167. reflex/plugins/shared_tailwind.py +158 -0
  168. reflex/plugins/sitemap.py +206 -0
  169. reflex/plugins/tailwind_v3.py +13 -106
  170. reflex/plugins/tailwind_v4.py +15 -108
  171. reflex/reflex.py +1 -0
  172. reflex/state.py +134 -140
  173. reflex/testing.py +57 -9
  174. reflex/utils/build.py +9 -69
  175. reflex/utils/exec.py +59 -161
  176. reflex/utils/export.py +1 -1
  177. reflex/utils/imports.py +0 -4
  178. reflex/utils/misc.py +28 -0
  179. reflex/utils/prerequisites.py +62 -59
  180. reflex/utils/processes.py +6 -6
  181. reflex/utils/pyi_generator.py +21 -9
  182. reflex/utils/serializers.py +14 -1
  183. reflex/utils/types.py +196 -61
  184. reflex/vars/__init__.py +2 -0
  185. reflex/vars/base.py +367 -134
  186. {reflex-0.7.14a5.dist-info → reflex-0.8.0a1.dist-info}/METADATA +12 -5
  187. {reflex-0.7.14a5.dist-info → reflex-0.8.0a1.dist-info}/RECORD +190 -196
  188. reflex/.templates/web/next.config.js +0 -7
  189. reflex/components/base/head.py +0 -20
  190. reflex/components/base/head.pyi +0 -116
  191. reflex/components/next/__init__.py +0 -10
  192. reflex/components/next/base.py +0 -7
  193. reflex/components/next/image.py +0 -117
  194. reflex/components/next/image.pyi +0 -94
  195. reflex/components/next/link.py +0 -20
  196. reflex/components/next/link.pyi +0 -67
  197. reflex/components/next/video.py +0 -38
  198. reflex/components/next/video.pyi +0 -68
  199. reflex/components/suneditor/__init__.py +0 -5
  200. reflex/components/suneditor/editor.py +0 -269
  201. reflex/components/suneditor/editor.pyi +0 -199
  202. reflex/experimental/layout.py +0 -254
  203. {reflex-0.7.14a5.dist-info → reflex-0.8.0a1.dist-info}/WHEEL +0 -0
  204. {reflex-0.7.14a5.dist-info → reflex-0.8.0a1.dist-info}/entry_points.txt +0 -0
  205. {reflex-0.7.14a5.dist-info → reflex-0.8.0a1.dist-info}/licenses/LICENSE +0 -0
@@ -10,7 +10,7 @@ from reflex.components.component import ComponentNamespace
10
10
  from reflex.components.core.breakpoints import Breakpoints
11
11
  from reflex.components.el import elements
12
12
  from reflex.components.radix.themes.base import RadixThemesComponent
13
- from reflex.event import EventType
13
+ from reflex.event import EventType, PointerEventInfo
14
14
  from reflex.vars.base import Var
15
15
 
16
16
  CalloutVariant = Literal["soft", "surface", "outline"]
@@ -279,9 +279,9 @@ class CalloutRoot(elements.Div, RadixThemesComponent):
279
279
  autofocus: bool | None = None,
280
280
  custom_attrs: dict[str, Var | Any] | None = None,
281
281
  on_blur: EventType[()] | None = None,
282
- on_click: EventType[()] | None = None,
283
- on_context_menu: EventType[()] | None = None,
284
- on_double_click: EventType[()] | None = None,
282
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
283
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
284
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
285
285
  on_focus: EventType[()] | None = None,
286
286
  on_mount: EventType[()] | None = None,
287
287
  on_mouse_down: EventType[()] | None = None,
@@ -292,6 +292,7 @@ class CalloutRoot(elements.Div, RadixThemesComponent):
292
292
  on_mouse_over: EventType[()] | None = None,
293
293
  on_mouse_up: EventType[()] | None = None,
294
294
  on_scroll: EventType[()] | None = None,
295
+ on_scroll_end: EventType[()] | None = None,
295
296
  on_unmount: EventType[()] | None = None,
296
297
  **props,
297
298
  ) -> CalloutRoot:
@@ -532,9 +533,9 @@ class CalloutIcon(elements.Div, RadixThemesComponent):
532
533
  autofocus: bool | None = None,
533
534
  custom_attrs: dict[str, Var | Any] | None = None,
534
535
  on_blur: EventType[()] | None = None,
535
- on_click: EventType[()] | None = None,
536
- on_context_menu: EventType[()] | None = None,
537
- on_double_click: EventType[()] | None = None,
536
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
537
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
538
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
538
539
  on_focus: EventType[()] | None = None,
539
540
  on_mount: EventType[()] | None = None,
540
541
  on_mouse_down: EventType[()] | None = None,
@@ -545,6 +546,7 @@ class CalloutIcon(elements.Div, RadixThemesComponent):
545
546
  on_mouse_over: EventType[()] | None = None,
546
547
  on_mouse_up: EventType[()] | None = None,
547
548
  on_scroll: EventType[()] | None = None,
549
+ on_scroll_end: EventType[()] | None = None,
548
550
  on_unmount: EventType[()] | None = None,
549
551
  **props,
550
552
  ) -> CalloutIcon:
@@ -780,9 +782,9 @@ class CalloutText(elements.P, RadixThemesComponent):
780
782
  autofocus: bool | None = None,
781
783
  custom_attrs: dict[str, Var | Any] | None = None,
782
784
  on_blur: EventType[()] | None = None,
783
- on_click: EventType[()] | None = None,
784
- on_context_menu: EventType[()] | None = None,
785
- on_double_click: EventType[()] | None = None,
785
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
786
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
787
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
786
788
  on_focus: EventType[()] | None = None,
787
789
  on_mount: EventType[()] | None = None,
788
790
  on_mouse_down: EventType[()] | None = None,
@@ -793,6 +795,7 @@ class CalloutText(elements.P, RadixThemesComponent):
793
795
  on_mouse_over: EventType[()] | None = None,
794
796
  on_mouse_up: EventType[()] | None = None,
795
797
  on_scroll: EventType[()] | None = None,
798
+ on_scroll_end: EventType[()] | None = None,
796
799
  on_unmount: EventType[()] | None = None,
797
800
  **props,
798
801
  ) -> CalloutText:
@@ -1098,9 +1101,9 @@ class Callout(CalloutRoot):
1098
1101
  autofocus: bool | None = None,
1099
1102
  custom_attrs: dict[str, Var | Any] | None = None,
1100
1103
  on_blur: EventType[()] | None = None,
1101
- on_click: EventType[()] | None = None,
1102
- on_context_menu: EventType[()] | None = None,
1103
- on_double_click: EventType[()] | None = None,
1104
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
1105
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
1106
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
1104
1107
  on_focus: EventType[()] | None = None,
1105
1108
  on_mount: EventType[()] | None = None,
1106
1109
  on_mouse_down: EventType[()] | None = None,
@@ -1111,6 +1114,7 @@ class Callout(CalloutRoot):
1111
1114
  on_mouse_over: EventType[()] | None = None,
1112
1115
  on_mouse_up: EventType[()] | None = None,
1113
1116
  on_scroll: EventType[()] | None = None,
1117
+ on_scroll_end: EventType[()] | None = None,
1114
1118
  on_unmount: EventType[()] | None = None,
1115
1119
  **props,
1116
1120
  ) -> Callout:
@@ -1422,9 +1426,9 @@ class CalloutNamespace(ComponentNamespace):
1422
1426
  autofocus: bool | None = None,
1423
1427
  custom_attrs: dict[str, Var | Any] | None = None,
1424
1428
  on_blur: EventType[()] | None = None,
1425
- on_click: EventType[()] | None = None,
1426
- on_context_menu: EventType[()] | None = None,
1427
- on_double_click: EventType[()] | None = None,
1429
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
1430
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
1431
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
1428
1432
  on_focus: EventType[()] | None = None,
1429
1433
  on_mount: EventType[()] | None = None,
1430
1434
  on_mouse_down: EventType[()] | None = None,
@@ -1435,6 +1439,7 @@ class CalloutNamespace(ComponentNamespace):
1435
1439
  on_mouse_over: EventType[()] | None = None,
1436
1440
  on_mouse_up: EventType[()] | None = None,
1437
1441
  on_scroll: EventType[()] | None = None,
1442
+ on_scroll_end: EventType[()] | None = None,
1438
1443
  on_unmount: EventType[()] | None = None,
1439
1444
  **props,
1440
1445
  ) -> Callout:
@@ -9,7 +9,7 @@ from typing import Any, Literal, overload
9
9
  from reflex.components.core.breakpoints import Breakpoints
10
10
  from reflex.components.el import elements
11
11
  from reflex.components.radix.themes.base import RadixThemesComponent
12
- from reflex.event import EventType
12
+ from reflex.event import EventType, PointerEventInfo
13
13
  from reflex.vars.base import Var
14
14
 
15
15
  class Card(elements.Div, RadixThemesComponent):
@@ -219,9 +219,9 @@ class Card(elements.Div, RadixThemesComponent):
219
219
  autofocus: bool | None = None,
220
220
  custom_attrs: dict[str, Var | Any] | None = None,
221
221
  on_blur: EventType[()] | None = None,
222
- on_click: EventType[()] | None = None,
223
- on_context_menu: EventType[()] | None = None,
224
- on_double_click: EventType[()] | None = None,
222
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
223
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
224
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
225
225
  on_focus: EventType[()] | None = None,
226
226
  on_mount: EventType[()] | None = None,
227
227
  on_mouse_down: EventType[()] | None = None,
@@ -232,6 +232,7 @@ class Card(elements.Div, RadixThemesComponent):
232
232
  on_mouse_over: EventType[()] | None = None,
233
233
  on_mouse_up: EventType[()] | None = None,
234
234
  on_scroll: EventType[()] | None = None,
235
+ on_scroll_end: EventType[()] | None = None,
235
236
  on_unmount: EventType[()] | None = None,
236
237
  **props,
237
238
  ) -> Card:
@@ -9,7 +9,7 @@ from typing import Any, Literal, overload
9
9
  from reflex.components.component import ComponentNamespace
10
10
  from reflex.components.core.breakpoints import Breakpoints
11
11
  from reflex.components.radix.themes.base import RadixThemesComponent
12
- from reflex.event import EventType
12
+ from reflex.event import EventType, PointerEventInfo
13
13
  from reflex.vars.base import Var
14
14
 
15
15
  LiteralCheckboxSize = Literal["1", "2", "3"]
@@ -108,9 +108,9 @@ class Checkbox(RadixThemesComponent):
108
108
  custom_attrs: dict[str, Var | Any] | None = None,
109
109
  on_blur: EventType[()] | None = None,
110
110
  on_change: EventType[()] | EventType[bool] | None = None,
111
- on_click: EventType[()] | None = None,
112
- on_context_menu: EventType[()] | None = None,
113
- on_double_click: EventType[()] | None = None,
111
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
112
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
113
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
114
114
  on_focus: EventType[()] | None = None,
115
115
  on_mount: EventType[()] | None = None,
116
116
  on_mouse_down: EventType[()] | None = None,
@@ -121,6 +121,7 @@ class Checkbox(RadixThemesComponent):
121
121
  on_mouse_over: EventType[()] | None = None,
122
122
  on_mouse_up: EventType[()] | None = None,
123
123
  on_scroll: EventType[()] | None = None,
124
+ on_scroll_end: EventType[()] | None = None,
124
125
  on_unmount: EventType[()] | None = None,
125
126
  **props,
126
127
  ) -> Checkbox:
@@ -250,9 +251,9 @@ class HighLevelCheckbox(RadixThemesComponent):
250
251
  custom_attrs: dict[str, Var | Any] | None = None,
251
252
  on_blur: EventType[()] | None = None,
252
253
  on_change: EventType[()] | EventType[bool] | None = None,
253
- on_click: EventType[()] | None = None,
254
- on_context_menu: EventType[()] | None = None,
255
- on_double_click: EventType[()] | None = None,
254
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
255
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
256
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
256
257
  on_focus: EventType[()] | None = None,
257
258
  on_mount: EventType[()] | None = None,
258
259
  on_mouse_down: EventType[()] | None = None,
@@ -263,6 +264,7 @@ class HighLevelCheckbox(RadixThemesComponent):
263
264
  on_mouse_over: EventType[()] | None = None,
264
265
  on_mouse_up: EventType[()] | None = None,
265
266
  on_scroll: EventType[()] | None = None,
267
+ on_scroll_end: EventType[()] | None = None,
266
268
  on_unmount: EventType[()] | None = None,
267
269
  **props,
268
270
  ) -> HighLevelCheckbox:
@@ -389,9 +391,9 @@ class CheckboxNamespace(ComponentNamespace):
389
391
  custom_attrs: dict[str, Var | Any] | None = None,
390
392
  on_blur: EventType[()] | None = None,
391
393
  on_change: EventType[()] | EventType[bool] | None = None,
392
- on_click: EventType[()] | None = None,
393
- on_context_menu: EventType[()] | None = None,
394
- on_double_click: EventType[()] | None = None,
394
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
395
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
396
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
395
397
  on_focus: EventType[()] | None = None,
396
398
  on_mount: EventType[()] | None = None,
397
399
  on_mouse_down: EventType[()] | None = None,
@@ -402,6 +404,7 @@ class CheckboxNamespace(ComponentNamespace):
402
404
  on_mouse_over: EventType[()] | None = None,
403
405
  on_mouse_up: EventType[()] | None = None,
404
406
  on_scroll: EventType[()] | None = None,
407
+ on_scroll_end: EventType[()] | None = None,
405
408
  on_unmount: EventType[()] | None = None,
406
409
  **props,
407
410
  ) -> HighLevelCheckbox:
@@ -9,7 +9,7 @@ from typing import Any, Literal, overload
9
9
 
10
10
  from reflex.components.core.breakpoints import Breakpoints
11
11
  from reflex.components.radix.themes.base import RadixThemesComponent
12
- from reflex.event import EventType
12
+ from reflex.event import EventType, PointerEventInfo
13
13
  from reflex.vars.base import Var
14
14
 
15
15
  class CheckboxCardsRoot(RadixThemesComponent):
@@ -119,9 +119,9 @@ class CheckboxCardsRoot(RadixThemesComponent):
119
119
  autofocus: bool | None = None,
120
120
  custom_attrs: dict[str, Var | Any] | None = None,
121
121
  on_blur: EventType[()] | None = None,
122
- on_click: EventType[()] | None = None,
123
- on_context_menu: EventType[()] | None = None,
124
- on_double_click: EventType[()] | None = None,
122
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
123
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
124
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
125
125
  on_focus: EventType[()] | None = None,
126
126
  on_mount: EventType[()] | None = None,
127
127
  on_mouse_down: EventType[()] | None = None,
@@ -132,6 +132,7 @@ class CheckboxCardsRoot(RadixThemesComponent):
132
132
  on_mouse_over: EventType[()] | None = None,
133
133
  on_mouse_up: EventType[()] | None = None,
134
134
  on_scroll: EventType[()] | None = None,
135
+ on_scroll_end: EventType[()] | None = None,
135
136
  on_unmount: EventType[()] | None = None,
136
137
  **props,
137
138
  ) -> CheckboxCardsRoot:
@@ -179,9 +180,9 @@ class CheckboxCardsItem(RadixThemesComponent):
179
180
  autofocus: bool | None = None,
180
181
  custom_attrs: dict[str, Var | Any] | None = None,
181
182
  on_blur: EventType[()] | None = None,
182
- on_click: EventType[()] | None = None,
183
- on_context_menu: EventType[()] | None = None,
184
- on_double_click: EventType[()] | None = None,
183
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
184
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
185
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
185
186
  on_focus: EventType[()] | None = None,
186
187
  on_mount: EventType[()] | None = None,
187
188
  on_mouse_down: EventType[()] | None = None,
@@ -192,6 +193,7 @@ class CheckboxCardsItem(RadixThemesComponent):
192
193
  on_mouse_over: EventType[()] | None = None,
193
194
  on_mouse_up: EventType[()] | None = None,
194
195
  on_scroll: EventType[()] | None = None,
196
+ on_scroll_end: EventType[()] | None = None,
195
197
  on_unmount: EventType[()] | None = None,
196
198
  **props,
197
199
  ) -> CheckboxCardsItem:
@@ -9,7 +9,7 @@ from typing import Any, Literal, overload
9
9
 
10
10
  from reflex.components.core.breakpoints import Breakpoints
11
11
  from reflex.components.radix.themes.base import RadixThemesComponent
12
- from reflex.event import EventType
12
+ from reflex.event import EventType, PointerEventInfo
13
13
  from reflex.vars.base import Var
14
14
 
15
15
  class CheckboxGroupRoot(RadixThemesComponent):
@@ -99,9 +99,9 @@ class CheckboxGroupRoot(RadixThemesComponent):
99
99
  autofocus: bool | None = None,
100
100
  custom_attrs: dict[str, Var | Any] | None = None,
101
101
  on_blur: EventType[()] | None = None,
102
- on_click: EventType[()] | None = None,
103
- on_context_menu: EventType[()] | None = None,
104
- on_double_click: EventType[()] | None = None,
102
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
103
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
104
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
105
105
  on_focus: EventType[()] | None = None,
106
106
  on_mount: EventType[()] | None = None,
107
107
  on_mouse_down: EventType[()] | None = None,
@@ -112,6 +112,7 @@ class CheckboxGroupRoot(RadixThemesComponent):
112
112
  on_mouse_over: EventType[()] | None = None,
113
113
  on_mouse_up: EventType[()] | None = None,
114
114
  on_scroll: EventType[()] | None = None,
115
+ on_scroll_end: EventType[()] | None = None,
115
116
  on_unmount: EventType[()] | None = None,
116
117
  **props,
117
118
  ) -> CheckboxGroupRoot:
@@ -161,9 +162,9 @@ class CheckboxGroupItem(RadixThemesComponent):
161
162
  autofocus: bool | None = None,
162
163
  custom_attrs: dict[str, Var | Any] | None = None,
163
164
  on_blur: EventType[()] | None = None,
164
- on_click: EventType[()] | None = None,
165
- on_context_menu: EventType[()] | None = None,
166
- on_double_click: EventType[()] | None = None,
165
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
166
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
167
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
167
168
  on_focus: EventType[()] | None = None,
168
169
  on_mount: EventType[()] | None = None,
169
170
  on_mouse_down: EventType[()] | None = None,
@@ -174,6 +175,7 @@ class CheckboxGroupItem(RadixThemesComponent):
174
175
  on_mouse_over: EventType[()] | None = None,
175
176
  on_mouse_up: EventType[()] | None = None,
176
177
  on_scroll: EventType[()] | None = None,
178
+ on_scroll_end: EventType[()] | None = None,
177
179
  on_unmount: EventType[()] | None = None,
178
180
  **props,
179
181
  ) -> CheckboxGroupItem:
@@ -9,7 +9,7 @@ from typing import Any, Literal, overload
9
9
  from reflex.components.component import ComponentNamespace
10
10
  from reflex.components.core.breakpoints import Breakpoints
11
11
  from reflex.components.radix.themes.base import RadixThemesComponent
12
- from reflex.event import EventType
12
+ from reflex.event import EventType, PointerEventInfo
13
13
  from reflex.vars.base import Var
14
14
 
15
15
  from .checkbox import Checkbox
@@ -42,9 +42,9 @@ class ContextMenuRoot(RadixThemesComponent):
42
42
  autofocus: bool | None = None,
43
43
  custom_attrs: dict[str, Var | Any] | None = None,
44
44
  on_blur: EventType[()] | None = None,
45
- on_click: EventType[()] | None = None,
46
- on_context_menu: EventType[()] | None = None,
47
- on_double_click: EventType[()] | None = None,
45
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
46
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
47
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
48
48
  on_focus: EventType[()] | None = None,
49
49
  on_mount: EventType[()] | None = None,
50
50
  on_mouse_down: EventType[()] | None = None,
@@ -56,6 +56,7 @@ class ContextMenuRoot(RadixThemesComponent):
56
56
  on_mouse_up: EventType[()] | None = None,
57
57
  on_open_change: EventType[()] | EventType[bool] | None = None,
58
58
  on_scroll: EventType[()] | None = None,
59
+ on_scroll_end: EventType[()] | None = None,
59
60
  on_unmount: EventType[()] | None = None,
60
61
  **props,
61
62
  ) -> ContextMenuRoot:
@@ -101,9 +102,9 @@ class ContextMenuTrigger(RadixThemesComponent):
101
102
  autofocus: bool | None = None,
102
103
  custom_attrs: dict[str, Var | Any] | None = None,
103
104
  on_blur: EventType[()] | None = None,
104
- on_click: EventType[()] | None = None,
105
- on_context_menu: EventType[()] | None = None,
106
- on_double_click: EventType[()] | None = None,
105
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
106
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
107
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
107
108
  on_focus: EventType[()] | None = None,
108
109
  on_mount: EventType[()] | None = None,
109
110
  on_mouse_down: EventType[()] | None = None,
@@ -114,6 +115,7 @@ class ContextMenuTrigger(RadixThemesComponent):
114
115
  on_mouse_over: EventType[()] | None = None,
115
116
  on_mouse_up: EventType[()] | None = None,
116
117
  on_scroll: EventType[()] | None = None,
118
+ on_scroll_end: EventType[()] | None = None,
117
119
  on_unmount: EventType[()] | None = None,
118
120
  **props,
119
121
  ) -> ContextMenuTrigger:
@@ -242,10 +244,10 @@ class ContextMenuContent(RadixThemesComponent):
242
244
  autofocus: bool | None = None,
243
245
  custom_attrs: dict[str, Var | Any] | None = None,
244
246
  on_blur: EventType[()] | None = None,
245
- on_click: EventType[()] | None = None,
247
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
246
248
  on_close_auto_focus: EventType[()] | None = None,
247
- on_context_menu: EventType[()] | None = None,
248
- on_double_click: EventType[()] | None = None,
249
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
250
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
249
251
  on_escape_key_down: EventType[()] | None = None,
250
252
  on_focus: EventType[()] | None = None,
251
253
  on_focus_outside: EventType[()] | None = None,
@@ -260,6 +262,7 @@ class ContextMenuContent(RadixThemesComponent):
260
262
  on_mouse_up: EventType[()] | None = None,
261
263
  on_pointer_down_outside: EventType[()] | None = None,
262
264
  on_scroll: EventType[()] | None = None,
265
+ on_scroll_end: EventType[()] | None = None,
263
266
  on_unmount: EventType[()] | None = None,
264
267
  **props,
265
268
  ) -> ContextMenuContent:
@@ -323,9 +326,9 @@ class ContextMenuSub(RadixThemesComponent):
323
326
  autofocus: bool | None = None,
324
327
  custom_attrs: dict[str, Var | Any] | None = None,
325
328
  on_blur: EventType[()] | None = None,
326
- on_click: EventType[()] | None = None,
327
- on_context_menu: EventType[()] | None = None,
328
- on_double_click: EventType[()] | None = None,
329
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
330
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
331
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
329
332
  on_focus: EventType[()] | None = None,
330
333
  on_mount: EventType[()] | None = None,
331
334
  on_mouse_down: EventType[()] | None = None,
@@ -337,6 +340,7 @@ class ContextMenuSub(RadixThemesComponent):
337
340
  on_mouse_up: EventType[()] | None = None,
338
341
  on_open_change: EventType[()] | EventType[bool] | None = None,
339
342
  on_scroll: EventType[()] | None = None,
343
+ on_scroll_end: EventType[()] | None = None,
340
344
  on_unmount: EventType[()] | None = None,
341
345
  **props,
342
346
  ) -> ContextMenuSub:
@@ -384,9 +388,9 @@ class ContextMenuSubTrigger(RadixThemesComponent):
384
388
  autofocus: bool | None = None,
385
389
  custom_attrs: dict[str, Var | Any] | None = None,
386
390
  on_blur: EventType[()] | None = None,
387
- on_click: EventType[()] | None = None,
388
- on_context_menu: EventType[()] | None = None,
389
- on_double_click: EventType[()] | None = None,
391
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
392
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
393
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
390
394
  on_focus: EventType[()] | None = None,
391
395
  on_mount: EventType[()] | None = None,
392
396
  on_mouse_down: EventType[()] | None = None,
@@ -397,6 +401,7 @@ class ContextMenuSubTrigger(RadixThemesComponent):
397
401
  on_mouse_over: EventType[()] | None = None,
398
402
  on_mouse_up: EventType[()] | None = None,
399
403
  on_scroll: EventType[()] | None = None,
404
+ on_scroll_end: EventType[()] | None = None,
400
405
  on_unmount: EventType[()] | None = None,
401
406
  **props,
402
407
  ) -> ContextMenuSubTrigger:
@@ -456,9 +461,9 @@ class ContextMenuSubContent(RadixThemesComponent):
456
461
  autofocus: bool | None = None,
457
462
  custom_attrs: dict[str, Var | Any] | None = None,
458
463
  on_blur: EventType[()] | None = None,
459
- on_click: EventType[()] | None = None,
460
- on_context_menu: EventType[()] | None = None,
461
- on_double_click: EventType[()] | None = None,
464
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
465
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
466
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
462
467
  on_escape_key_down: EventType[()] | None = None,
463
468
  on_focus: EventType[()] | None = None,
464
469
  on_focus_outside: EventType[()] | None = None,
@@ -473,6 +478,7 @@ class ContextMenuSubContent(RadixThemesComponent):
473
478
  on_mouse_up: EventType[()] | None = None,
474
479
  on_pointer_down_outside: EventType[()] | None = None,
475
480
  on_scroll: EventType[()] | None = None,
481
+ on_scroll_end: EventType[()] | None = None,
476
482
  on_unmount: EventType[()] | None = None,
477
483
  **props,
478
484
  ) -> ContextMenuSubContent:
@@ -590,9 +596,9 @@ class ContextMenuItem(RadixThemesComponent):
590
596
  autofocus: bool | None = None,
591
597
  custom_attrs: dict[str, Var | Any] | None = None,
592
598
  on_blur: EventType[()] | None = None,
593
- on_click: EventType[()] | None = None,
594
- on_context_menu: EventType[()] | None = None,
595
- on_double_click: EventType[()] | None = None,
599
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
600
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
601
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
596
602
  on_focus: EventType[()] | None = None,
597
603
  on_mount: EventType[()] | None = None,
598
604
  on_mouse_down: EventType[()] | None = None,
@@ -603,6 +609,7 @@ class ContextMenuItem(RadixThemesComponent):
603
609
  on_mouse_over: EventType[()] | None = None,
604
610
  on_mouse_up: EventType[()] | None = None,
605
611
  on_scroll: EventType[()] | None = None,
612
+ on_scroll_end: EventType[()] | None = None,
606
613
  on_select: EventType[()] | None = None,
607
614
  on_unmount: EventType[()] | None = None,
608
615
  **props,
@@ -651,9 +658,9 @@ class ContextMenuSeparator(RadixThemesComponent):
651
658
  autofocus: bool | None = None,
652
659
  custom_attrs: dict[str, Var | Any] | None = None,
653
660
  on_blur: EventType[()] | None = None,
654
- on_click: EventType[()] | None = None,
655
- on_context_menu: EventType[()] | None = None,
656
- on_double_click: EventType[()] | None = None,
661
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
662
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
663
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
657
664
  on_focus: EventType[()] | None = None,
658
665
  on_mount: EventType[()] | None = None,
659
666
  on_mouse_down: EventType[()] | None = None,
@@ -664,6 +671,7 @@ class ContextMenuSeparator(RadixThemesComponent):
664
671
  on_mouse_over: EventType[()] | None = None,
665
672
  on_mouse_up: EventType[()] | None = None,
666
673
  on_scroll: EventType[()] | None = None,
674
+ on_scroll_end: EventType[()] | None = None,
667
675
  on_unmount: EventType[()] | None = None,
668
676
  **props,
669
677
  ) -> ContextMenuSeparator:
@@ -781,9 +789,9 @@ class ContextMenuCheckbox(Checkbox):
781
789
  custom_attrs: dict[str, Var | Any] | None = None,
782
790
  on_blur: EventType[()] | None = None,
783
791
  on_change: EventType[()] | EventType[bool] | None = None,
784
- on_click: EventType[()] | None = None,
785
- on_context_menu: EventType[()] | None = None,
786
- on_double_click: EventType[()] | None = None,
792
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
793
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
794
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
787
795
  on_focus: EventType[()] | None = None,
788
796
  on_mount: EventType[()] | None = None,
789
797
  on_mouse_down: EventType[()] | None = None,
@@ -794,6 +802,7 @@ class ContextMenuCheckbox(Checkbox):
794
802
  on_mouse_over: EventType[()] | None = None,
795
803
  on_mouse_up: EventType[()] | None = None,
796
804
  on_scroll: EventType[()] | None = None,
805
+ on_scroll_end: EventType[()] | None = None,
797
806
  on_unmount: EventType[()] | None = None,
798
807
  **props,
799
808
  ) -> ContextMenuCheckbox:
@@ -849,9 +858,9 @@ class ContextMenuLabel(RadixThemesComponent):
849
858
  autofocus: bool | None = None,
850
859
  custom_attrs: dict[str, Var | Any] | None = None,
851
860
  on_blur: EventType[()] | None = None,
852
- on_click: EventType[()] | None = None,
853
- on_context_menu: EventType[()] | None = None,
854
- on_double_click: EventType[()] | None = None,
861
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
862
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
863
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
855
864
  on_focus: EventType[()] | None = None,
856
865
  on_mount: EventType[()] | None = None,
857
866
  on_mouse_down: EventType[()] | None = None,
@@ -862,6 +871,7 @@ class ContextMenuLabel(RadixThemesComponent):
862
871
  on_mouse_over: EventType[()] | None = None,
863
872
  on_mouse_up: EventType[()] | None = None,
864
873
  on_scroll: EventType[()] | None = None,
874
+ on_scroll_end: EventType[()] | None = None,
865
875
  on_unmount: EventType[()] | None = None,
866
876
  **props,
867
877
  ) -> ContextMenuLabel:
@@ -905,9 +915,9 @@ class ContextMenuGroup(RadixThemesComponent):
905
915
  autofocus: bool | None = None,
906
916
  custom_attrs: dict[str, Var | Any] | None = None,
907
917
  on_blur: EventType[()] | None = None,
908
- on_click: EventType[()] | None = None,
909
- on_context_menu: EventType[()] | None = None,
910
- on_double_click: EventType[()] | None = None,
918
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
919
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
920
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
911
921
  on_focus: EventType[()] | None = None,
912
922
  on_mount: EventType[()] | None = None,
913
923
  on_mouse_down: EventType[()] | None = None,
@@ -918,6 +928,7 @@ class ContextMenuGroup(RadixThemesComponent):
918
928
  on_mouse_over: EventType[()] | None = None,
919
929
  on_mouse_up: EventType[()] | None = None,
920
930
  on_scroll: EventType[()] | None = None,
931
+ on_scroll_end: EventType[()] | None = None,
921
932
  on_unmount: EventType[()] | None = None,
922
933
  **props,
923
934
  ) -> ContextMenuGroup:
@@ -963,9 +974,9 @@ class ContextMenuRadioGroup(RadixThemesComponent):
963
974
  custom_attrs: dict[str, Var | Any] | None = None,
964
975
  on_blur: EventType[()] | None = None,
965
976
  on_change: EventType[()] | EventType[str] | None = None,
966
- on_click: EventType[()] | None = None,
967
- on_context_menu: EventType[()] | None = None,
968
- on_double_click: EventType[()] | None = None,
977
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
978
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
979
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
969
980
  on_focus: EventType[()] | None = None,
970
981
  on_mount: EventType[()] | None = None,
971
982
  on_mouse_down: EventType[()] | None = None,
@@ -976,6 +987,7 @@ class ContextMenuRadioGroup(RadixThemesComponent):
976
987
  on_mouse_over: EventType[()] | None = None,
977
988
  on_mouse_up: EventType[()] | None = None,
978
989
  on_scroll: EventType[()] | None = None,
990
+ on_scroll_end: EventType[()] | None = None,
979
991
  on_unmount: EventType[()] | None = None,
980
992
  **props,
981
993
  ) -> ContextMenuRadioGroup:
@@ -1098,9 +1110,9 @@ class ContextMenuRadioItem(HighLevelRadioGroup):
1098
1110
  autofocus: bool | None = None,
1099
1111
  custom_attrs: dict[str, Var | Any] | None = None,
1100
1112
  on_blur: EventType[()] | None = None,
1101
- on_click: EventType[()] | None = None,
1102
- on_context_menu: EventType[()] | None = None,
1103
- on_double_click: EventType[()] | None = None,
1113
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
1114
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
1115
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
1104
1116
  on_focus: EventType[()] | None = None,
1105
1117
  on_mount: EventType[()] | None = None,
1106
1118
  on_mouse_down: EventType[()] | None = None,
@@ -1111,6 +1123,7 @@ class ContextMenuRadioItem(HighLevelRadioGroup):
1111
1123
  on_mouse_over: EventType[()] | None = None,
1112
1124
  on_mouse_up: EventType[()] | None = None,
1113
1125
  on_scroll: EventType[()] | None = None,
1126
+ on_scroll_end: EventType[()] | None = None,
1114
1127
  on_select: EventType[()] | None = None,
1115
1128
  on_unmount: EventType[()] | None = None,
1116
1129
  **props,