reflex 0.7.14a6__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 (206) 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 +52 -115
  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.14a6.dist-info → reflex-0.8.0a1.dist-info}/METADATA +12 -5
  187. {reflex-0.7.14a6.dist-info → reflex-0.8.0a1.dist-info}/RECORD +190 -197
  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/experimental/layout.pyi +0 -814
  204. {reflex-0.7.14a6.dist-info → reflex-0.8.0a1.dist-info}/WHEEL +0 -0
  205. {reflex-0.7.14a6.dist-info → reflex-0.8.0a1.dist-info}/entry_points.txt +0 -0
  206. {reflex-0.7.14a6.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 CommonPaddingProps, 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
  class TableRoot(elements.Table, RadixThemesComponent):
@@ -220,9 +220,9 @@ class TableRoot(elements.Table, RadixThemesComponent):
220
220
  autofocus: bool | None = None,
221
221
  custom_attrs: dict[str, Var | Any] | None = None,
222
222
  on_blur: EventType[()] | None = None,
223
- on_click: EventType[()] | None = None,
224
- on_context_menu: EventType[()] | None = None,
225
- on_double_click: EventType[()] | None = None,
223
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
224
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
225
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
226
226
  on_focus: EventType[()] | None = None,
227
227
  on_mount: EventType[()] | None = None,
228
228
  on_mouse_down: EventType[()] | None = None,
@@ -233,6 +233,7 @@ class TableRoot(elements.Table, RadixThemesComponent):
233
233
  on_mouse_over: EventType[()] | None = None,
234
234
  on_mouse_up: EventType[()] | None = None,
235
235
  on_scroll: EventType[()] | None = None,
236
+ on_scroll_end: EventType[()] | None = None,
236
237
  on_unmount: EventType[()] | None = None,
237
238
  **props,
238
239
  ) -> TableRoot:
@@ -472,9 +473,9 @@ class TableHeader(elements.Thead, RadixThemesComponent):
472
473
  autofocus: bool | None = None,
473
474
  custom_attrs: dict[str, Var | Any] | None = None,
474
475
  on_blur: EventType[()] | None = None,
475
- on_click: EventType[()] | None = None,
476
- on_context_menu: EventType[()] | None = None,
477
- on_double_click: EventType[()] | None = None,
476
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
477
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
478
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
478
479
  on_focus: EventType[()] | None = None,
479
480
  on_mount: EventType[()] | None = None,
480
481
  on_mouse_down: EventType[()] | None = None,
@@ -485,6 +486,7 @@ class TableHeader(elements.Thead, RadixThemesComponent):
485
486
  on_mouse_over: EventType[()] | None = None,
486
487
  on_mouse_up: EventType[()] | None = None,
487
488
  on_scroll: EventType[()] | None = None,
489
+ on_scroll_end: EventType[()] | None = None,
488
490
  on_unmount: EventType[()] | None = None,
489
491
  **props,
490
492
  ) -> TableHeader:
@@ -723,9 +725,9 @@ class TableRow(elements.Tr, RadixThemesComponent):
723
725
  autofocus: bool | None = None,
724
726
  custom_attrs: dict[str, Var | Any] | None = None,
725
727
  on_blur: EventType[()] | None = None,
726
- on_click: EventType[()] | None = None,
727
- on_context_menu: EventType[()] | None = None,
728
- on_double_click: EventType[()] | None = None,
728
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
729
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
730
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
729
731
  on_focus: EventType[()] | None = None,
730
732
  on_mount: EventType[()] | None = None,
731
733
  on_mouse_down: EventType[()] | None = None,
@@ -736,6 +738,7 @@ class TableRow(elements.Tr, RadixThemesComponent):
736
738
  on_mouse_over: EventType[()] | None = None,
737
739
  on_mouse_up: EventType[()] | None = None,
738
740
  on_scroll: EventType[()] | None = None,
741
+ on_scroll_end: EventType[()] | None = None,
739
742
  on_unmount: EventType[()] | None = None,
740
743
  **props,
741
744
  ) -> TableRow:
@@ -990,9 +993,9 @@ class TableColumnHeaderCell(elements.Th, RadixThemesComponent):
990
993
  autofocus: bool | None = None,
991
994
  custom_attrs: dict[str, Var | Any] | None = None,
992
995
  on_blur: EventType[()] | None = None,
993
- on_click: EventType[()] | None = None,
994
- on_context_menu: EventType[()] | None = None,
995
- on_double_click: EventType[()] | None = None,
996
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
997
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
998
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
996
999
  on_focus: EventType[()] | None = None,
997
1000
  on_mount: EventType[()] | None = None,
998
1001
  on_mouse_down: EventType[()] | None = None,
@@ -1003,6 +1006,7 @@ class TableColumnHeaderCell(elements.Th, RadixThemesComponent):
1003
1006
  on_mouse_over: EventType[()] | None = None,
1004
1007
  on_mouse_up: EventType[()] | None = None,
1005
1008
  on_scroll: EventType[()] | None = None,
1009
+ on_scroll_end: EventType[()] | None = None,
1006
1010
  on_unmount: EventType[()] | None = None,
1007
1011
  **props,
1008
1012
  ) -> TableColumnHeaderCell:
@@ -1246,9 +1250,9 @@ class TableBody(elements.Tbody, RadixThemesComponent):
1246
1250
  autofocus: bool | None = None,
1247
1251
  custom_attrs: dict[str, Var | Any] | None = None,
1248
1252
  on_blur: EventType[()] | None = None,
1249
- on_click: EventType[()] | None = None,
1250
- on_context_menu: EventType[()] | None = None,
1251
- on_double_click: EventType[()] | None = None,
1253
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
1254
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
1255
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
1252
1256
  on_focus: EventType[()] | None = None,
1253
1257
  on_mount: EventType[()] | None = None,
1254
1258
  on_mouse_down: EventType[()] | None = None,
@@ -1259,6 +1263,7 @@ class TableBody(elements.Tbody, RadixThemesComponent):
1259
1263
  on_mouse_over: EventType[()] | None = None,
1260
1264
  on_mouse_up: EventType[()] | None = None,
1261
1265
  on_scroll: EventType[()] | None = None,
1266
+ on_scroll_end: EventType[()] | None = None,
1262
1267
  on_unmount: EventType[()] | None = None,
1263
1268
  **props,
1264
1269
  ) -> TableBody:
@@ -1560,9 +1565,9 @@ class TableCell(elements.Td, CommonPaddingProps, RadixThemesComponent):
1560
1565
  autofocus: bool | None = None,
1561
1566
  custom_attrs: dict[str, Var | Any] | None = None,
1562
1567
  on_blur: EventType[()] | None = None,
1563
- on_click: EventType[()] | None = None,
1564
- on_context_menu: EventType[()] | None = None,
1565
- on_double_click: EventType[()] | None = None,
1568
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
1569
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
1570
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
1566
1571
  on_focus: EventType[()] | None = None,
1567
1572
  on_mount: EventType[()] | None = None,
1568
1573
  on_mouse_down: EventType[()] | None = None,
@@ -1573,6 +1578,7 @@ class TableCell(elements.Td, CommonPaddingProps, RadixThemesComponent):
1573
1578
  on_mouse_over: EventType[()] | None = None,
1574
1579
  on_mouse_up: EventType[()] | None = None,
1575
1580
  on_scroll: EventType[()] | None = None,
1581
+ on_scroll_end: EventType[()] | None = None,
1576
1582
  on_unmount: EventType[()] | None = None,
1577
1583
  **props,
1578
1584
  ) -> TableCell:
@@ -1889,9 +1895,9 @@ class TableRowHeaderCell(elements.Th, CommonPaddingProps, RadixThemesComponent):
1889
1895
  autofocus: bool | None = None,
1890
1896
  custom_attrs: dict[str, Var | Any] | None = None,
1891
1897
  on_blur: EventType[()] | None = None,
1892
- on_click: EventType[()] | None = None,
1893
- on_context_menu: EventType[()] | None = None,
1894
- on_double_click: EventType[()] | None = None,
1898
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
1899
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
1900
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
1895
1901
  on_focus: EventType[()] | None = None,
1896
1902
  on_mount: EventType[()] | None = None,
1897
1903
  on_mouse_down: EventType[()] | None = None,
@@ -1902,6 +1908,7 @@ class TableRowHeaderCell(elements.Th, CommonPaddingProps, RadixThemesComponent):
1902
1908
  on_mouse_over: EventType[()] | None = None,
1903
1909
  on_mouse_up: EventType[()] | None = None,
1904
1910
  on_scroll: EventType[()] | None = None,
1911
+ on_scroll_end: EventType[()] | None = None,
1905
1912
  on_unmount: EventType[()] | None = None,
1906
1913
  **props,
1907
1914
  ) -> TableRowHeaderCell:
@@ -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
  vertical_orientation_css = "&[data-orientation='vertical']"
@@ -43,9 +43,9 @@ class TabsRoot(RadixThemesComponent):
43
43
  custom_attrs: dict[str, Var | Any] | None = None,
44
44
  on_blur: EventType[()] | None = None,
45
45
  on_change: EventType[()] | EventType[str] | None = None,
46
- on_click: EventType[()] | None = None,
47
- on_context_menu: EventType[()] | None = None,
48
- on_double_click: EventType[()] | None = None,
46
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
47
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
48
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
49
49
  on_focus: EventType[()] | None = None,
50
50
  on_mount: EventType[()] | None = None,
51
51
  on_mouse_down: EventType[()] | None = None,
@@ -56,6 +56,7 @@ class TabsRoot(RadixThemesComponent):
56
56
  on_mouse_over: EventType[()] | None = None,
57
57
  on_mouse_up: EventType[()] | 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
  ) -> TabsRoot:
@@ -109,9 +110,9 @@ class TabsList(RadixThemesComponent):
109
110
  autofocus: bool | None = None,
110
111
  custom_attrs: dict[str, Var | Any] | None = None,
111
112
  on_blur: EventType[()] | None = None,
112
- on_click: EventType[()] | None = None,
113
- on_context_menu: EventType[()] | None = None,
114
- on_double_click: EventType[()] | None = None,
113
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
114
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
115
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
115
116
  on_focus: EventType[()] | None = None,
116
117
  on_mount: EventType[()] | None = None,
117
118
  on_mouse_down: EventType[()] | None = None,
@@ -122,6 +123,7 @@ class TabsList(RadixThemesComponent):
122
123
  on_mouse_over: EventType[()] | None = None,
123
124
  on_mouse_up: EventType[()] | None = None,
124
125
  on_scroll: EventType[()] | None = None,
126
+ on_scroll_end: EventType[()] | None = None,
125
127
  on_unmount: EventType[()] | None = None,
126
128
  **props,
127
129
  ) -> TabsList:
@@ -226,9 +228,9 @@ class TabsTrigger(RadixThemesComponent):
226
228
  autofocus: bool | None = None,
227
229
  custom_attrs: dict[str, Var | Any] | None = None,
228
230
  on_blur: EventType[()] | None = None,
229
- on_click: EventType[()] | None = None,
230
- on_context_menu: EventType[()] | None = None,
231
- on_double_click: EventType[()] | None = None,
231
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
232
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
233
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
232
234
  on_focus: EventType[()] | None = None,
233
235
  on_mount: EventType[()] | None = None,
234
236
  on_mouse_down: EventType[()] | None = None,
@@ -239,6 +241,7 @@ class TabsTrigger(RadixThemesComponent):
239
241
  on_mouse_over: EventType[()] | None = None,
240
242
  on_mouse_up: EventType[()] | None = None,
241
243
  on_scroll: EventType[()] | None = None,
244
+ on_scroll_end: EventType[()] | None = None,
242
245
  on_unmount: EventType[()] | None = None,
243
246
  **props,
244
247
  ) -> TabsTrigger:
@@ -285,9 +288,9 @@ class TabsContent(RadixThemesComponent):
285
288
  autofocus: bool | None = None,
286
289
  custom_attrs: dict[str, Var | Any] | None = None,
287
290
  on_blur: EventType[()] | None = None,
288
- on_click: EventType[()] | None = None,
289
- on_context_menu: EventType[()] | None = None,
290
- on_double_click: EventType[()] | None = None,
291
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
292
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
293
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
291
294
  on_focus: EventType[()] | None = None,
292
295
  on_mount: EventType[()] | None = None,
293
296
  on_mouse_down: EventType[()] | None = None,
@@ -298,6 +301,7 @@ class TabsContent(RadixThemesComponent):
298
301
  on_mouse_over: EventType[()] | None = None,
299
302
  on_mouse_up: EventType[()] | None = None,
300
303
  on_scroll: EventType[()] | None = None,
304
+ on_scroll_end: EventType[()] | None = None,
301
305
  on_unmount: EventType[()] | None = None,
302
306
  **props,
303
307
  ) -> TabsContent:
@@ -354,9 +358,9 @@ class Tabs(ComponentNamespace):
354
358
  custom_attrs: dict[str, Var | Any] | None = None,
355
359
  on_blur: EventType[()] | None = None,
356
360
  on_change: EventType[()] | EventType[str] | None = None,
357
- on_click: EventType[()] | None = None,
358
- on_context_menu: EventType[()] | None = None,
359
- on_double_click: EventType[()] | None = None,
361
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
362
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
363
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
360
364
  on_focus: EventType[()] | None = None,
361
365
  on_mount: EventType[()] | None = None,
362
366
  on_mouse_down: EventType[()] | None = None,
@@ -367,6 +371,7 @@ class Tabs(ComponentNamespace):
367
371
  on_mouse_over: EventType[()] | None = None,
368
372
  on_mouse_up: EventType[()] | None = None,
369
373
  on_scroll: EventType[()] | None = None,
374
+ on_scroll_end: EventType[()] | None = None,
370
375
  on_unmount: EventType[()] | None = None,
371
376
  **props,
372
377
  ) -> TabsRoot:
@@ -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, KeyInputInfo
12
+ from reflex.event import EventType, KeyInputInfo, PointerEventInfo
13
13
  from reflex.vars.base import Var
14
14
 
15
15
  LiteralTextAreaSize = Literal["1", "2", "3"]
@@ -306,9 +306,9 @@ class TextArea(RadixThemesComponent, elements.Textarea):
306
306
  custom_attrs: dict[str, Var | Any] | None = None,
307
307
  on_blur: EventType[()] | EventType[str] | None = None,
308
308
  on_change: EventType[()] | EventType[str] | None = None,
309
- on_click: EventType[()] | None = None,
310
- on_context_menu: EventType[()] | None = None,
311
- on_double_click: EventType[()] | None = None,
309
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
310
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
311
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
312
312
  on_focus: EventType[()] | EventType[str] | None = None,
313
313
  on_key_down: EventType[()] | EventType[str] | EventType[str, KeyInputInfo] | None = None,
314
314
  on_key_up: EventType[()] | EventType[str] | EventType[str, KeyInputInfo] | None = None,
@@ -321,6 +321,7 @@ class TextArea(RadixThemesComponent, elements.Textarea):
321
321
  on_mouse_over: EventType[()] | None = None,
322
322
  on_mouse_up: EventType[()] | None = None,
323
323
  on_scroll: EventType[()] | None = None,
324
+ on_scroll_end: EventType[()] | None = None,
324
325
  on_unmount: EventType[()] | None = None,
325
326
  **props,
326
327
  ) -> TextArea:
@@ -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, KeyInputInfo
13
+ from reflex.event import EventType, KeyInputInfo, PointerEventInfo
14
14
  from reflex.vars.base import Var
15
15
 
16
16
  LiteralTextFieldSize = Literal["1", "2", "3"]
@@ -314,9 +314,9 @@ class TextFieldRoot(elements.Input, RadixThemesComponent):
314
314
  custom_attrs: dict[str, Var | Any] | None = None,
315
315
  on_blur: EventType[()] | EventType[str] | None = None,
316
316
  on_change: EventType[()] | EventType[str] | None = None,
317
- on_click: EventType[()] | None = None,
318
- on_context_menu: EventType[()] | None = None,
319
- on_double_click: EventType[()] | None = None,
317
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
318
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
319
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
320
320
  on_focus: EventType[()] | EventType[str] | None = None,
321
321
  on_key_down: EventType[()] | EventType[str] | EventType[str, KeyInputInfo] | None = None,
322
322
  on_key_up: EventType[()] | EventType[str] | EventType[str, KeyInputInfo] | None = None,
@@ -329,6 +329,7 @@ class TextFieldRoot(elements.Input, RadixThemesComponent):
329
329
  on_mouse_over: EventType[()] | None = None,
330
330
  on_mouse_up: EventType[()] | None = None,
331
331
  on_scroll: EventType[()] | None = None,
332
+ on_scroll_end: EventType[()] | None = None,
332
333
  on_unmount: EventType[()] | None = None,
333
334
  **props,
334
335
  ) -> TextFieldRoot:
@@ -482,9 +483,9 @@ class TextFieldSlot(RadixThemesComponent):
482
483
  autofocus: bool | None = None,
483
484
  custom_attrs: dict[str, Var | Any] | None = None,
484
485
  on_blur: EventType[()] | None = None,
485
- on_click: EventType[()] | None = None,
486
- on_context_menu: EventType[()] | None = None,
487
- on_double_click: EventType[()] | None = None,
486
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
487
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
488
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
488
489
  on_focus: EventType[()] | None = None,
489
490
  on_mount: EventType[()] | None = None,
490
491
  on_mouse_down: EventType[()] | None = None,
@@ -495,6 +496,7 @@ class TextFieldSlot(RadixThemesComponent):
495
496
  on_mouse_over: EventType[()] | None = None,
496
497
  on_mouse_up: EventType[()] | None = None,
497
498
  on_scroll: EventType[()] | None = None,
499
+ on_scroll_end: EventType[()] | None = None,
498
500
  on_unmount: EventType[()] | None = None,
499
501
  **props,
500
502
  ) -> TextFieldSlot:
@@ -818,9 +820,9 @@ class TextField(ComponentNamespace):
818
820
  custom_attrs: dict[str, Var | Any] | None = None,
819
821
  on_blur: EventType[()] | EventType[str] | None = None,
820
822
  on_change: EventType[()] | EventType[str] | None = None,
821
- on_click: EventType[()] | None = None,
822
- on_context_menu: EventType[()] | None = None,
823
- on_double_click: EventType[()] | None = None,
823
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
824
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
825
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
824
826
  on_focus: EventType[()] | EventType[str] | None = None,
825
827
  on_key_down: EventType[()] | EventType[str] | EventType[str, KeyInputInfo] | None = None,
826
828
  on_key_up: EventType[()] | EventType[str] | EventType[str, KeyInputInfo] | None = None,
@@ -833,6 +835,7 @@ class TextField(ComponentNamespace):
833
835
  on_mouse_over: EventType[()] | None = None,
834
836
  on_mouse_up: EventType[()] | None = None,
835
837
  on_scroll: EventType[()] | None = None,
838
+ on_scroll_end: EventType[()] | None = None,
836
839
  on_unmount: EventType[()] | None = None,
837
840
  **props,
838
841
  ) -> TextFieldRoot:
@@ -8,7 +8,7 @@ from typing import Any, Literal, overload
8
8
 
9
9
  from reflex.components.core.breakpoints import Breakpoints
10
10
  from reflex.components.radix.themes.base import RadixThemesComponent
11
- from reflex.event import EventType
11
+ from reflex.event import EventType, PointerEventInfo
12
12
  from reflex.vars.base import Var
13
13
 
14
14
  LiteralSideType = Literal["top", "right", "bottom", "left"]
@@ -60,9 +60,9 @@ class Tooltip(RadixThemesComponent):
60
60
  autofocus: bool | None = None,
61
61
  custom_attrs: dict[str, Var | Any] | None = None,
62
62
  on_blur: EventType[()] | None = None,
63
- on_click: EventType[()] | None = None,
64
- on_context_menu: EventType[()] | None = None,
65
- on_double_click: EventType[()] | None = None,
63
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
64
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
65
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
66
66
  on_escape_key_down: EventType[()] | None = None,
67
67
  on_focus: EventType[()] | None = None,
68
68
  on_mount: EventType[()] | None = None,
@@ -76,6 +76,7 @@ class Tooltip(RadixThemesComponent):
76
76
  on_open_change: EventType[()] | EventType[bool] | None = None,
77
77
  on_pointer_down_outside: EventType[()] | None = None,
78
78
  on_scroll: EventType[()] | None = None,
79
+ on_scroll_end: EventType[()] | None = None,
79
80
  on_unmount: EventType[()] | None = None,
80
81
  **props,
81
82
  ) -> Tooltip:
@@ -12,7 +12,7 @@ from reflex.components.radix.themes.base import (
12
12
  CommonPaddingProps,
13
13
  RadixThemesComponent,
14
14
  )
15
- from reflex.event import EventType
15
+ from reflex.event import EventType, PointerEventInfo
16
16
  from reflex.vars.base import Var
17
17
 
18
18
  LiteralBoolNumber = Literal["0", "1"]
@@ -113,9 +113,9 @@ class LayoutComponent(CommonMarginProps, CommonPaddingProps, RadixThemesComponen
113
113
  autofocus: bool | None = None,
114
114
  custom_attrs: dict[str, Var | Any] | None = None,
115
115
  on_blur: EventType[()] | None = None,
116
- on_click: EventType[()] | None = None,
117
- on_context_menu: EventType[()] | None = None,
118
- on_double_click: EventType[()] | None = None,
116
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
117
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
118
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
119
119
  on_focus: EventType[()] | None = None,
120
120
  on_mount: EventType[()] | None = None,
121
121
  on_mouse_down: EventType[()] | None = None,
@@ -126,6 +126,7 @@ class LayoutComponent(CommonMarginProps, CommonPaddingProps, RadixThemesComponen
126
126
  on_mouse_over: EventType[()] | None = None,
127
127
  on_mouse_up: EventType[()] | None = None,
128
128
  on_scroll: EventType[()] | None = None,
129
+ on_scroll_end: EventType[()] | None = None,
129
130
  on_unmount: EventType[()] | None = None,
130
131
  **props,
131
132
  ) -> LayoutComponent:
@@ -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 Box(elements.Div, RadixThemesComponent):
@@ -208,9 +208,9 @@ class Box(elements.Div, RadixThemesComponent):
208
208
  autofocus: bool | None = None,
209
209
  custom_attrs: dict[str, Var | Any] | None = None,
210
210
  on_blur: EventType[()] | None = None,
211
- on_click: EventType[()] | None = None,
212
- on_context_menu: EventType[()] | None = None,
213
- on_double_click: EventType[()] | None = None,
211
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
212
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
213
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
214
214
  on_focus: EventType[()] | None = None,
215
215
  on_mount: EventType[()] | None = None,
216
216
  on_mouse_down: EventType[()] | None = None,
@@ -221,6 +221,7 @@ class Box(elements.Div, RadixThemesComponent):
221
221
  on_mouse_over: EventType[()] | None = None,
222
222
  on_mouse_up: EventType[()] | None = None,
223
223
  on_scroll: EventType[()] | None = None,
224
+ on_scroll_end: EventType[()] | None = None,
224
225
  on_unmount: EventType[()] | None = None,
225
226
  **props,
226
227
  ) -> Box:
@@ -7,7 +7,7 @@ from collections.abc import Mapping, Sequence
7
7
  from typing import Any, Literal, overload
8
8
 
9
9
  from reflex.components.core.breakpoints import Breakpoints
10
- from reflex.event import EventType
10
+ from reflex.event import EventType, PointerEventInfo
11
11
  from reflex.vars.base import Var
12
12
 
13
13
  from .flex import Flex
@@ -251,9 +251,9 @@ class Center(Flex):
251
251
  autofocus: bool | None = None,
252
252
  custom_attrs: dict[str, Var | Any] | None = None,
253
253
  on_blur: EventType[()] | None = None,
254
- on_click: EventType[()] | None = None,
255
- on_context_menu: EventType[()] | None = None,
256
- 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,
257
257
  on_focus: EventType[()] | None = None,
258
258
  on_mount: EventType[()] | None = None,
259
259
  on_mouse_down: EventType[()] | None = None,
@@ -264,6 +264,7 @@ class Center(Flex):
264
264
  on_mouse_over: EventType[()] | None = None,
265
265
  on_mouse_up: EventType[()] | None = None,
266
266
  on_scroll: EventType[()] | None = None,
267
+ on_scroll_end: EventType[()] | None = None,
267
268
  on_unmount: EventType[()] | None = None,
268
269
  **props,
269
270
  ) -> Center:
@@ -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
  LiteralContainerSize = Literal["1", "2", "3", "4"]
@@ -218,9 +218,9 @@ class Container(elements.Div, RadixThemesComponent):
218
218
  autofocus: bool | None = None,
219
219
  custom_attrs: dict[str, Var | Any] | None = None,
220
220
  on_blur: EventType[()] | None = None,
221
- on_click: EventType[()] | None = None,
222
- on_context_menu: EventType[()] | None = None,
223
- on_double_click: EventType[()] | None = None,
221
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
222
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
223
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
224
224
  on_focus: EventType[()] | None = None,
225
225
  on_mount: EventType[()] | None = None,
226
226
  on_mouse_down: EventType[()] | None = None,
@@ -231,6 +231,7 @@ class Container(elements.Div, RadixThemesComponent):
231
231
  on_mouse_over: EventType[()] | None = None,
232
232
  on_mouse_up: EventType[()] | None = None,
233
233
  on_scroll: EventType[()] | None = None,
234
+ on_scroll_end: EventType[()] | None = None,
234
235
  on_unmount: EventType[()] | None = None,
235
236
  **props,
236
237
  ) -> Container:
@@ -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
  LiteralFlexDirection = Literal["row", "column", "row-reverse", "column-reverse"]
@@ -253,9 +253,9 @@ class Flex(elements.Div, RadixThemesComponent):
253
253
  autofocus: bool | None = None,
254
254
  custom_attrs: dict[str, Var | Any] | None = None,
255
255
  on_blur: EventType[()] | None = None,
256
- on_click: EventType[()] | None = None,
257
- on_context_menu: EventType[()] | None = None,
258
- on_double_click: EventType[()] | None = None,
256
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
257
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
258
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
259
259
  on_focus: EventType[()] | None = None,
260
260
  on_mount: EventType[()] | None = None,
261
261
  on_mouse_down: EventType[()] | None = None,
@@ -266,6 +266,7 @@ class Flex(elements.Div, RadixThemesComponent):
266
266
  on_mouse_over: EventType[()] | None = None,
267
267
  on_mouse_up: EventType[()] | None = None,
268
268
  on_scroll: EventType[()] | None = None,
269
+ on_scroll_end: EventType[()] | None = None,
269
270
  on_unmount: EventType[()] | None = None,
270
271
  **props,
271
272
  ) -> Flex:
@@ -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
  LiteralGridFlow = Literal["row", "column", "dense", "row-dense", "column-dense"]
@@ -273,9 +273,9 @@ class Grid(elements.Div, RadixThemesComponent):
273
273
  autofocus: bool | None = None,
274
274
  custom_attrs: dict[str, Var | Any] | None = None,
275
275
  on_blur: EventType[()] | None = None,
276
- on_click: EventType[()] | None = None,
277
- on_context_menu: EventType[()] | None = None,
278
- on_double_click: EventType[()] | None = None,
276
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
277
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
278
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
279
279
  on_focus: EventType[()] | None = None,
280
280
  on_mount: EventType[()] | None = None,
281
281
  on_mouse_down: EventType[()] | None = None,
@@ -286,6 +286,7 @@ class Grid(elements.Div, RadixThemesComponent):
286
286
  on_mouse_over: EventType[()] | None = None,
287
287
  on_mouse_up: EventType[()] | None = None,
288
288
  on_scroll: EventType[()] | None = None,
289
+ on_scroll_end: EventType[()] | None = None,
289
290
  on_unmount: EventType[()] | None = None,
290
291
  **props,
291
292
  ) -> Grid: