reflex 0.7.14a6__py3-none-any.whl → 0.8.0a2__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 (211) 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/pages/stateful_component.js.jinja2 +4 -0
  7. reflex/.templates/jinja/web/utils/context.js.jinja2 +25 -8
  8. reflex/.templates/web/app/entry.client.js +8 -0
  9. reflex/.templates/web/app/routes.js +10 -0
  10. reflex/.templates/web/components/reflex/radix_themes_color_mode_provider.js +12 -37
  11. reflex/.templates/web/postcss.config.js +1 -1
  12. reflex/.templates/web/react-router.config.js +6 -0
  13. reflex/.templates/web/utils/client_side_routing.js +21 -19
  14. reflex/.templates/web/utils/react-theme.js +92 -0
  15. reflex/.templates/web/utils/state.js +160 -67
  16. reflex/.templates/web/vite.config.js +32 -0
  17. reflex/__init__.py +1 -6
  18. reflex/__init__.pyi +0 -4
  19. reflex/app.py +53 -116
  20. reflex/base.py +1 -87
  21. reflex/compiler/compiler.py +41 -8
  22. reflex/compiler/templates.py +3 -3
  23. reflex/compiler/utils.py +73 -33
  24. reflex/components/__init__.py +0 -2
  25. reflex/components/__init__.pyi +0 -3
  26. reflex/components/base/__init__.py +1 -5
  27. reflex/components/base/__init__.pyi +4 -6
  28. reflex/components/base/app_wrap.pyi +5 -4
  29. reflex/components/base/body.pyi +5 -4
  30. reflex/components/base/document.py +18 -14
  31. reflex/components/base/document.pyi +83 -27
  32. reflex/components/base/error_boundary.pyi +5 -4
  33. reflex/components/base/fragment.pyi +5 -4
  34. reflex/components/base/link.pyi +9 -7
  35. reflex/components/base/meta.pyi +17 -13
  36. reflex/components/base/script.py +60 -58
  37. reflex/components/base/script.pyi +246 -31
  38. reflex/components/base/strict_mode.pyi +5 -4
  39. reflex/components/component.py +146 -217
  40. reflex/components/core/__init__.py +1 -0
  41. reflex/components/core/__init__.pyi +1 -0
  42. reflex/components/core/auto_scroll.pyi +5 -4
  43. reflex/components/core/banner.pyi +25 -19
  44. reflex/components/core/client_side_routing.py +7 -6
  45. reflex/components/core/client_side_routing.pyi +6 -56
  46. reflex/components/core/clipboard.pyi +5 -4
  47. reflex/components/core/debounce.py +1 -0
  48. reflex/components/core/debounce.pyi +5 -4
  49. reflex/components/core/foreach.py +3 -2
  50. reflex/components/core/helmet.py +14 -0
  51. reflex/components/{next/base.pyi → core/helmet.pyi} +10 -7
  52. reflex/components/core/html.pyi +5 -4
  53. reflex/components/core/sticky.pyi +17 -13
  54. reflex/components/core/upload.py +2 -1
  55. reflex/components/core/upload.pyi +21 -16
  56. reflex/components/datadisplay/code.py +2 -72
  57. reflex/components/datadisplay/code.pyi +9 -10
  58. reflex/components/datadisplay/dataeditor.pyi +11 -6
  59. reflex/components/datadisplay/shiki_code_block.pyi +13 -10
  60. reflex/components/dynamic.py +5 -5
  61. reflex/components/el/element.pyi +5 -4
  62. reflex/components/el/elements/base.pyi +5 -4
  63. reflex/components/el/elements/forms.pyi +69 -52
  64. reflex/components/el/elements/inline.pyi +113 -85
  65. reflex/components/el/elements/media.pyi +105 -79
  66. reflex/components/el/elements/metadata.pyi +25 -19
  67. reflex/components/el/elements/other.pyi +29 -22
  68. reflex/components/el/elements/scripts.pyi +13 -10
  69. reflex/components/el/elements/sectioning.pyi +61 -46
  70. reflex/components/el/elements/tables.pyi +41 -31
  71. reflex/components/el/elements/typography.pyi +61 -46
  72. reflex/components/field.py +175 -0
  73. reflex/components/gridjs/datatable.py +2 -2
  74. reflex/components/gridjs/datatable.pyi +11 -9
  75. reflex/components/lucide/icon.py +6 -2
  76. reflex/components/lucide/icon.pyi +15 -10
  77. reflex/components/markdown/markdown.pyi +5 -4
  78. reflex/components/moment/moment.pyi +5 -4
  79. reflex/components/plotly/plotly.pyi +19 -10
  80. reflex/components/props.py +376 -27
  81. reflex/components/radix/primitives/accordion.py +8 -1
  82. reflex/components/radix/primitives/accordion.pyi +29 -22
  83. reflex/components/radix/primitives/base.pyi +9 -7
  84. reflex/components/radix/primitives/drawer.pyi +45 -34
  85. reflex/components/radix/primitives/form.pyi +41 -31
  86. reflex/components/radix/primitives/progress.pyi +21 -16
  87. reflex/components/radix/primitives/slider.pyi +21 -16
  88. reflex/components/radix/themes/base.py +3 -3
  89. reflex/components/radix/themes/base.pyi +33 -25
  90. reflex/components/radix/themes/color_mode.pyi +13 -10
  91. reflex/components/radix/themes/components/alert_dialog.pyi +29 -22
  92. reflex/components/radix/themes/components/aspect_ratio.pyi +5 -4
  93. reflex/components/radix/themes/components/avatar.pyi +5 -4
  94. reflex/components/radix/themes/components/badge.pyi +5 -4
  95. reflex/components/radix/themes/components/button.pyi +5 -4
  96. reflex/components/radix/themes/components/callout.pyi +21 -16
  97. reflex/components/radix/themes/components/card.pyi +5 -4
  98. reflex/components/radix/themes/components/checkbox.pyi +13 -10
  99. reflex/components/radix/themes/components/checkbox_cards.pyi +9 -7
  100. reflex/components/radix/themes/components/checkbox_group.pyi +9 -7
  101. reflex/components/radix/themes/components/context_menu.pyi +53 -40
  102. reflex/components/radix/themes/components/data_list.pyi +17 -13
  103. reflex/components/radix/themes/components/dialog.pyi +29 -22
  104. reflex/components/radix/themes/components/dropdown_menu.pyi +33 -25
  105. reflex/components/radix/themes/components/hover_card.pyi +17 -13
  106. reflex/components/radix/themes/components/icon_button.pyi +5 -4
  107. reflex/components/radix/themes/components/inset.pyi +5 -4
  108. reflex/components/radix/themes/components/popover.pyi +17 -13
  109. reflex/components/radix/themes/components/progress.pyi +5 -4
  110. reflex/components/radix/themes/components/radio.pyi +5 -4
  111. reflex/components/radix/themes/components/radio_cards.pyi +9 -7
  112. reflex/components/radix/themes/components/radio_group.pyi +17 -13
  113. reflex/components/radix/themes/components/scroll_area.pyi +5 -4
  114. reflex/components/radix/themes/components/segmented_control.pyi +9 -7
  115. reflex/components/radix/themes/components/select.pyi +37 -28
  116. reflex/components/radix/themes/components/separator.pyi +5 -4
  117. reflex/components/radix/themes/components/skeleton.pyi +5 -4
  118. reflex/components/radix/themes/components/slider.pyi +5 -4
  119. reflex/components/radix/themes/components/spinner.pyi +5 -4
  120. reflex/components/radix/themes/components/switch.pyi +5 -4
  121. reflex/components/radix/themes/components/table.pyi +29 -22
  122. reflex/components/radix/themes/components/tabs.pyi +21 -16
  123. reflex/components/radix/themes/components/text_area.pyi +5 -4
  124. reflex/components/radix/themes/components/text_field.pyi +13 -10
  125. reflex/components/radix/themes/components/tooltip.pyi +5 -4
  126. reflex/components/radix/themes/layout/base.pyi +5 -4
  127. reflex/components/radix/themes/layout/box.pyi +5 -4
  128. reflex/components/radix/themes/layout/center.pyi +5 -4
  129. reflex/components/radix/themes/layout/container.pyi +5 -4
  130. reflex/components/radix/themes/layout/flex.pyi +5 -4
  131. reflex/components/radix/themes/layout/grid.pyi +5 -4
  132. reflex/components/radix/themes/layout/list.pyi +21 -16
  133. reflex/components/radix/themes/layout/section.pyi +5 -4
  134. reflex/components/radix/themes/layout/spacer.pyi +5 -4
  135. reflex/components/radix/themes/layout/stack.pyi +13 -10
  136. reflex/components/radix/themes/typography/blockquote.pyi +5 -4
  137. reflex/components/radix/themes/typography/code.pyi +5 -4
  138. reflex/components/radix/themes/typography/heading.pyi +5 -4
  139. reflex/components/radix/themes/typography/link.py +46 -11
  140. reflex/components/radix/themes/typography/link.pyi +311 -6
  141. reflex/components/radix/themes/typography/text.pyi +29 -22
  142. reflex/components/react_player/audio.pyi +5 -4
  143. reflex/components/react_player/react_player.pyi +5 -4
  144. reflex/components/react_player/video.pyi +5 -4
  145. reflex/components/recharts/cartesian.py +2 -1
  146. reflex/components/recharts/cartesian.pyi +65 -46
  147. reflex/components/recharts/charts.py +4 -2
  148. reflex/components/recharts/charts.pyi +36 -24
  149. reflex/components/recharts/general.pyi +24 -18
  150. reflex/components/recharts/polar.py +8 -4
  151. reflex/components/recharts/polar.pyi +16 -10
  152. reflex/components/recharts/recharts.pyi +9 -7
  153. reflex/components/sonner/toast.py +2 -2
  154. reflex/components/sonner/toast.pyi +10 -8
  155. reflex/config.py +3 -77
  156. reflex/constants/__init__.py +2 -2
  157. reflex/constants/base.py +28 -11
  158. reflex/constants/compiler.py +5 -3
  159. reflex/constants/event.py +1 -0
  160. reflex/constants/installer.py +22 -16
  161. reflex/constants/route.py +19 -7
  162. reflex/constants/state.py +2 -0
  163. reflex/custom_components/custom_components.py +0 -14
  164. reflex/environment.py +1 -1
  165. reflex/event.py +178 -81
  166. reflex/experimental/__init__.py +0 -30
  167. reflex/istate/proxy.py +5 -3
  168. reflex/page.py +0 -27
  169. reflex/plugins/__init__.py +3 -2
  170. reflex/plugins/base.py +5 -1
  171. reflex/plugins/shared_tailwind.py +158 -0
  172. reflex/plugins/sitemap.py +206 -0
  173. reflex/plugins/tailwind_v3.py +13 -106
  174. reflex/plugins/tailwind_v4.py +15 -108
  175. reflex/reflex.py +1 -0
  176. reflex/route.py +15 -21
  177. reflex/state.py +134 -140
  178. reflex/testing.py +58 -10
  179. reflex/utils/build.py +38 -82
  180. reflex/utils/exec.py +59 -161
  181. reflex/utils/export.py +2 -2
  182. reflex/utils/imports.py +0 -4
  183. reflex/utils/misc.py +28 -0
  184. reflex/utils/prerequisites.py +65 -62
  185. reflex/utils/processes.py +8 -7
  186. reflex/utils/pyi_generator.py +21 -9
  187. reflex/utils/serializers.py +14 -1
  188. reflex/utils/types.py +196 -61
  189. reflex/vars/__init__.py +2 -0
  190. reflex/vars/base.py +367 -134
  191. {reflex-0.7.14a6.dist-info → reflex-0.8.0a2.dist-info}/METADATA +12 -5
  192. {reflex-0.7.14a6.dist-info → reflex-0.8.0a2.dist-info}/RECORD +195 -202
  193. reflex/.templates/web/next.config.js +0 -7
  194. reflex/components/base/head.py +0 -20
  195. reflex/components/base/head.pyi +0 -116
  196. reflex/components/next/__init__.py +0 -10
  197. reflex/components/next/base.py +0 -7
  198. reflex/components/next/image.py +0 -117
  199. reflex/components/next/image.pyi +0 -94
  200. reflex/components/next/link.py +0 -20
  201. reflex/components/next/link.pyi +0 -67
  202. reflex/components/next/video.py +0 -38
  203. reflex/components/next/video.pyi +0 -68
  204. reflex/components/suneditor/__init__.py +0 -5
  205. reflex/components/suneditor/editor.py +0 -269
  206. reflex/components/suneditor/editor.pyi +0 -199
  207. reflex/experimental/layout.py +0 -254
  208. reflex/experimental/layout.pyi +0 -814
  209. {reflex-0.7.14a6.dist-info → reflex-0.8.0a2.dist-info}/WHEEL +0 -0
  210. {reflex-0.7.14a6.dist-info → reflex-0.8.0a2.dist-info}/entry_points.txt +0 -0
  211. {reflex-0.7.14a6.dist-info → reflex-0.8.0a2.dist-info}/licenses/LICENSE +0 -0
@@ -10,14 +10,318 @@ from reflex.components.component import MemoizationLeaf
10
10
  from reflex.components.core.breakpoints import Breakpoints
11
11
  from reflex.components.el.elements.inline import A
12
12
  from reflex.components.markdown.markdown import MarkdownComponentMap
13
- from reflex.components.next.link import NextLink
14
13
  from reflex.components.radix.themes.base import RadixThemesComponent
15
- from reflex.event import EventType
14
+ from reflex.event import EventType, PointerEventInfo
16
15
  from reflex.utils.imports import ImportDict
17
16
  from reflex.vars.base import Var
18
17
 
19
18
  LiteralLinkUnderline = Literal["auto", "hover", "always", "none"]
20
- next_link = NextLink.create()
19
+ LiteralLinkDiscover = Literal["none", "render"]
20
+
21
+ class ReactRouterLink(A):
22
+ @overload
23
+ @classmethod
24
+ def create( # type: ignore
25
+ cls,
26
+ *children,
27
+ to: Var[str] | str | None = None,
28
+ replace: Var[bool] | bool | None = None,
29
+ reload_document: Var[bool] | bool | None = None,
30
+ prevent_scroll_reset: Var[bool] | bool | None = None,
31
+ discover: Literal["none", "render"]
32
+ | Var[Literal["none", "render"]]
33
+ | None = None,
34
+ view_transition: Var[bool] | bool | None = None,
35
+ download: Var[bool | str] | bool | str | None = None,
36
+ href: Var[str] | str | None = None,
37
+ href_lang: Var[str] | str | None = None,
38
+ media: Var[str] | str | None = None,
39
+ ping: Var[str] | str | None = None,
40
+ referrer_policy: Literal[
41
+ "",
42
+ "no-referrer",
43
+ "no-referrer-when-downgrade",
44
+ "origin",
45
+ "origin-when-cross-origin",
46
+ "same-origin",
47
+ "strict-origin",
48
+ "strict-origin-when-cross-origin",
49
+ "unsafe-url",
50
+ ]
51
+ | Var[
52
+ Literal[
53
+ "",
54
+ "no-referrer",
55
+ "no-referrer-when-downgrade",
56
+ "origin",
57
+ "origin-when-cross-origin",
58
+ "same-origin",
59
+ "strict-origin",
60
+ "strict-origin-when-cross-origin",
61
+ "unsafe-url",
62
+ ]
63
+ ]
64
+ | None = None,
65
+ rel: Var[str] | str | None = None,
66
+ target: Literal["_blank", "_parent", "_self", "_top"]
67
+ | Var[Literal["_blank", "_parent", "_self", "_top"] | str]
68
+ | str
69
+ | None = None,
70
+ access_key: Var[str] | str | None = None,
71
+ auto_capitalize: Literal[
72
+ "characters", "none", "off", "on", "sentences", "words"
73
+ ]
74
+ | Var[Literal["characters", "none", "off", "on", "sentences", "words"]]
75
+ | None = None,
76
+ content_editable: Literal["inherit", "plaintext-only", False, True]
77
+ | Var[Literal["inherit", "plaintext-only", False, True]]
78
+ | None = None,
79
+ context_menu: Var[str] | str | None = None,
80
+ dir: Var[str] | str | None = None,
81
+ draggable: Var[bool] | bool | None = None,
82
+ enter_key_hint: Literal[
83
+ "done", "enter", "go", "next", "previous", "search", "send"
84
+ ]
85
+ | Var[Literal["done", "enter", "go", "next", "previous", "search", "send"]]
86
+ | None = None,
87
+ hidden: Var[bool] | bool | None = None,
88
+ input_mode: Literal[
89
+ "decimal", "email", "none", "numeric", "search", "tel", "text", "url"
90
+ ]
91
+ | Var[
92
+ Literal[
93
+ "decimal", "email", "none", "numeric", "search", "tel", "text", "url"
94
+ ]
95
+ ]
96
+ | None = None,
97
+ item_prop: Var[str] | str | None = None,
98
+ lang: Var[str] | str | None = None,
99
+ role: Literal[
100
+ "alert",
101
+ "alertdialog",
102
+ "application",
103
+ "article",
104
+ "banner",
105
+ "button",
106
+ "cell",
107
+ "checkbox",
108
+ "columnheader",
109
+ "combobox",
110
+ "complementary",
111
+ "contentinfo",
112
+ "definition",
113
+ "dialog",
114
+ "directory",
115
+ "document",
116
+ "feed",
117
+ "figure",
118
+ "form",
119
+ "grid",
120
+ "gridcell",
121
+ "group",
122
+ "heading",
123
+ "img",
124
+ "link",
125
+ "list",
126
+ "listbox",
127
+ "listitem",
128
+ "log",
129
+ "main",
130
+ "marquee",
131
+ "math",
132
+ "menu",
133
+ "menubar",
134
+ "menuitem",
135
+ "menuitemcheckbox",
136
+ "menuitemradio",
137
+ "navigation",
138
+ "none",
139
+ "note",
140
+ "option",
141
+ "presentation",
142
+ "progressbar",
143
+ "radio",
144
+ "radiogroup",
145
+ "region",
146
+ "row",
147
+ "rowgroup",
148
+ "rowheader",
149
+ "scrollbar",
150
+ "search",
151
+ "searchbox",
152
+ "separator",
153
+ "slider",
154
+ "spinbutton",
155
+ "status",
156
+ "switch",
157
+ "tab",
158
+ "table",
159
+ "tablist",
160
+ "tabpanel",
161
+ "term",
162
+ "textbox",
163
+ "timer",
164
+ "toolbar",
165
+ "tooltip",
166
+ "tree",
167
+ "treegrid",
168
+ "treeitem",
169
+ ]
170
+ | Var[
171
+ Literal[
172
+ "alert",
173
+ "alertdialog",
174
+ "application",
175
+ "article",
176
+ "banner",
177
+ "button",
178
+ "cell",
179
+ "checkbox",
180
+ "columnheader",
181
+ "combobox",
182
+ "complementary",
183
+ "contentinfo",
184
+ "definition",
185
+ "dialog",
186
+ "directory",
187
+ "document",
188
+ "feed",
189
+ "figure",
190
+ "form",
191
+ "grid",
192
+ "gridcell",
193
+ "group",
194
+ "heading",
195
+ "img",
196
+ "link",
197
+ "list",
198
+ "listbox",
199
+ "listitem",
200
+ "log",
201
+ "main",
202
+ "marquee",
203
+ "math",
204
+ "menu",
205
+ "menubar",
206
+ "menuitem",
207
+ "menuitemcheckbox",
208
+ "menuitemradio",
209
+ "navigation",
210
+ "none",
211
+ "note",
212
+ "option",
213
+ "presentation",
214
+ "progressbar",
215
+ "radio",
216
+ "radiogroup",
217
+ "region",
218
+ "row",
219
+ "rowgroup",
220
+ "rowheader",
221
+ "scrollbar",
222
+ "search",
223
+ "searchbox",
224
+ "separator",
225
+ "slider",
226
+ "spinbutton",
227
+ "status",
228
+ "switch",
229
+ "tab",
230
+ "table",
231
+ "tablist",
232
+ "tabpanel",
233
+ "term",
234
+ "textbox",
235
+ "timer",
236
+ "toolbar",
237
+ "tooltip",
238
+ "tree",
239
+ "treegrid",
240
+ "treeitem",
241
+ ]
242
+ ]
243
+ | None = None,
244
+ slot: Var[str] | str | None = None,
245
+ spell_check: Var[bool] | bool | None = None,
246
+ tab_index: Var[int] | int | None = None,
247
+ title: Var[str] | str | None = None,
248
+ style: Sequence[Mapping[str, Any]]
249
+ | Mapping[str, Any]
250
+ | Var[Mapping[str, Any]]
251
+ | Breakpoints
252
+ | None = None,
253
+ key: Any | None = None,
254
+ id: Any | None = None,
255
+ ref: Var | None = None,
256
+ class_name: Any | None = None,
257
+ autofocus: bool | None = None,
258
+ custom_attrs: dict[str, Var | Any] | None = None,
259
+ on_blur: EventType[()] | None = None,
260
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
261
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
262
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
263
+ on_focus: EventType[()] | None = None,
264
+ on_mount: EventType[()] | None = None,
265
+ on_mouse_down: EventType[()] | None = None,
266
+ on_mouse_enter: EventType[()] | None = None,
267
+ on_mouse_leave: EventType[()] | None = None,
268
+ on_mouse_move: EventType[()] | None = None,
269
+ on_mouse_out: EventType[()] | None = None,
270
+ on_mouse_over: EventType[()] | None = None,
271
+ on_mouse_up: EventType[()] | None = None,
272
+ on_scroll: EventType[()] | None = None,
273
+ on_scroll_end: EventType[()] | None = None,
274
+ on_unmount: EventType[()] | None = None,
275
+ **props,
276
+ ) -> ReactRouterLink:
277
+ """Create the component.
278
+
279
+ Args:
280
+ *children: The children of the component.
281
+ to: The page to link to.
282
+ replace: Replaces the current entry in the history stack instead of pushing a new one onto it.
283
+ reload_document: Will use document navigation instead of client side routing when the link is clicked: the browser will handle the transition normally (as if it were an <a href>).
284
+ prevent_scroll_reset: Prevents the scroll position from being reset to the top of the window when the link is clicked and the app is using ScrollRestoration. This only prevents new locations resetting scroll to the top, scroll position will be restored for back/forward button navigation.
285
+ discover: Defines the link discovery behavior
286
+ view_transition: Enables a View Transition for this navigation.
287
+ download: Specifies that the target (the file specified in the href attribute) will be downloaded when a user clicks on the hyperlink.
288
+ href: Specifies the URL of the page the link goes to
289
+ href_lang: Specifies the language of the linked document
290
+ media: Specifies what media/device the linked document is optimized for
291
+ ping: Specifies which referrer is sent when fetching the resource
292
+ referrer_policy: Specifies the relationship between the current document and the linked document
293
+ rel: Specifies the relationship between the linked document and the current document
294
+ target: Specifies where to open the linked document
295
+ access_key: Provides a hint for generating a keyboard shortcut for the current element.
296
+ auto_capitalize: Controls whether and how text input is automatically capitalized as it is entered/edited by the user.
297
+ content_editable: Indicates whether the element's content is editable.
298
+ context_menu: Defines the ID of a <menu> element which will serve as the element's context menu.
299
+ dir: Defines the text direction. Allowed values are ltr (Left-To-Right) or rtl (Right-To-Left)
300
+ draggable: Defines whether the element can be dragged.
301
+ enter_key_hint: Hints what media types the media element is able to play.
302
+ hidden: Defines whether the element is hidden.
303
+ input_mode: Defines the type of the element.
304
+ item_prop: Defines the name of the element for metadata purposes.
305
+ lang: Defines the language used in the element.
306
+ role: Defines the role of the element.
307
+ slot: Assigns a slot in a shadow DOM shadow tree to an element.
308
+ spell_check: Defines whether the element may be checked for spelling errors.
309
+ tab_index: Defines the position of the current element in the tabbing order.
310
+ title: Defines a tooltip for the element.
311
+ style: The style of the component.
312
+ key: A unique key for the component.
313
+ id: The id for the component.
314
+ ref: The Var to pass as the ref to the component.
315
+ class_name: The class name for the component.
316
+ autofocus: Whether the component should take the focus once the page is loaded
317
+ custom_attrs: custom attribute
318
+ **props: The props of the component.
319
+
320
+ Returns:
321
+ The component.
322
+ """
323
+
324
+ _KNOWN_REACT_ROUTER_LINK_PROPS = frozenset(ReactRouterLink.get_props())
21
325
 
22
326
  class Link(RadixThemesComponent, A, MemoizationLeaf, MarkdownComponentMap):
23
327
  def add_imports(self) -> ImportDict: ...
@@ -337,9 +641,9 @@ class Link(RadixThemesComponent, A, MemoizationLeaf, MarkdownComponentMap):
337
641
  autofocus: bool | None = None,
338
642
  custom_attrs: dict[str, Var | Any] | None = None,
339
643
  on_blur: EventType[()] | None = None,
340
- on_click: EventType[()] | None = None,
341
- on_context_menu: EventType[()] | None = None,
342
- on_double_click: EventType[()] | None = None,
644
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
645
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
646
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
343
647
  on_focus: EventType[()] | None = None,
344
648
  on_mount: EventType[()] | None = None,
345
649
  on_mouse_down: EventType[()] | None = None,
@@ -350,6 +654,7 @@ class Link(RadixThemesComponent, A, MemoizationLeaf, MarkdownComponentMap):
350
654
  on_mouse_over: EventType[()] | None = None,
351
655
  on_mouse_up: EventType[()] | None = None,
352
656
  on_scroll: EventType[()] | None = None,
657
+ on_scroll_end: EventType[()] | None = None,
353
658
  on_unmount: EventType[()] | None = None,
354
659
  **props,
355
660
  ) -> Link:
@@ -11,7 +11,7 @@ from reflex.components.core.breakpoints import Breakpoints
11
11
  from reflex.components.el import elements
12
12
  from reflex.components.markdown.markdown import MarkdownComponentMap
13
13
  from reflex.components.radix.themes.base import RadixThemesComponent
14
- from reflex.event import EventType
14
+ from reflex.event import EventType, PointerEventInfo
15
15
  from reflex.vars.base import Var
16
16
 
17
17
  LiteralType = Literal[
@@ -363,9 +363,9 @@ class Text(elements.Span, RadixThemesComponent, MarkdownComponentMap):
363
363
  autofocus: bool | None = None,
364
364
  custom_attrs: dict[str, Var | Any] | None = None,
365
365
  on_blur: EventType[()] | None = None,
366
- on_click: EventType[()] | None = None,
367
- on_context_menu: EventType[()] | None = None,
368
- on_double_click: EventType[()] | None = None,
366
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
367
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
368
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
369
369
  on_focus: EventType[()] | None = None,
370
370
  on_mount: EventType[()] | None = None,
371
371
  on_mouse_down: EventType[()] | None = None,
@@ -376,6 +376,7 @@ class Text(elements.Span, RadixThemesComponent, MarkdownComponentMap):
376
376
  on_mouse_over: EventType[()] | None = None,
377
377
  on_mouse_up: EventType[()] | None = None,
378
378
  on_scroll: EventType[()] | None = None,
379
+ on_scroll_end: EventType[()] | None = None,
379
380
  on_unmount: EventType[()] | None = None,
380
381
  **props,
381
382
  ) -> Text:
@@ -751,9 +752,9 @@ class Span(Text):
751
752
  autofocus: bool | None = None,
752
753
  custom_attrs: dict[str, Var | Any] | None = None,
753
754
  on_blur: EventType[()] | None = None,
754
- on_click: EventType[()] | None = None,
755
- on_context_menu: EventType[()] | None = None,
756
- on_double_click: EventType[()] | None = None,
755
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
756
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
757
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
757
758
  on_focus: EventType[()] | None = None,
758
759
  on_mount: EventType[()] | None = None,
759
760
  on_mouse_down: EventType[()] | None = None,
@@ -764,6 +765,7 @@ class Span(Text):
764
765
  on_mouse_over: EventType[()] | None = None,
765
766
  on_mouse_up: EventType[()] | None = None,
766
767
  on_scroll: EventType[()] | None = None,
768
+ on_scroll_end: EventType[()] | None = None,
767
769
  on_unmount: EventType[()] | None = None,
768
770
  **props,
769
771
  ) -> Span:
@@ -1007,9 +1009,9 @@ class Em(elements.Em, RadixThemesComponent):
1007
1009
  autofocus: bool | None = None,
1008
1010
  custom_attrs: dict[str, Var | Any] | None = None,
1009
1011
  on_blur: EventType[()] | None = None,
1010
- on_click: EventType[()] | None = None,
1011
- on_context_menu: EventType[()] | None = None,
1012
- on_double_click: EventType[()] | None = None,
1012
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
1013
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
1014
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
1013
1015
  on_focus: EventType[()] | None = None,
1014
1016
  on_mount: EventType[()] | None = None,
1015
1017
  on_mouse_down: EventType[()] | None = None,
@@ -1020,6 +1022,7 @@ class Em(elements.Em, RadixThemesComponent):
1020
1022
  on_mouse_over: EventType[()] | None = None,
1021
1023
  on_mouse_up: EventType[()] | None = None,
1022
1024
  on_scroll: EventType[()] | None = None,
1025
+ on_scroll_end: EventType[()] | None = None,
1023
1026
  on_unmount: EventType[()] | None = None,
1024
1027
  **props,
1025
1028
  ) -> Em:
@@ -1258,9 +1261,9 @@ class Kbd(elements.Kbd, RadixThemesComponent):
1258
1261
  autofocus: bool | None = None,
1259
1262
  custom_attrs: dict[str, Var | Any] | None = None,
1260
1263
  on_blur: EventType[()] | None = None,
1261
- on_click: EventType[()] | None = None,
1262
- on_context_menu: EventType[()] | None = None,
1263
- on_double_click: EventType[()] | None = None,
1264
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
1265
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
1266
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
1264
1267
  on_focus: EventType[()] | None = None,
1265
1268
  on_mount: EventType[()] | None = None,
1266
1269
  on_mouse_down: EventType[()] | None = None,
@@ -1271,6 +1274,7 @@ class Kbd(elements.Kbd, RadixThemesComponent):
1271
1274
  on_mouse_over: EventType[()] | None = None,
1272
1275
  on_mouse_up: EventType[()] | None = None,
1273
1276
  on_scroll: EventType[()] | None = None,
1277
+ on_scroll_end: EventType[()] | None = None,
1274
1278
  on_unmount: EventType[()] | None = None,
1275
1279
  **props,
1276
1280
  ) -> Kbd:
@@ -1508,9 +1512,9 @@ class Quote(elements.Q, RadixThemesComponent):
1508
1512
  autofocus: bool | None = None,
1509
1513
  custom_attrs: dict[str, Var | Any] | None = None,
1510
1514
  on_blur: EventType[()] | None = None,
1511
- on_click: EventType[()] | None = None,
1512
- on_context_menu: EventType[()] | None = None,
1513
- on_double_click: EventType[()] | None = None,
1515
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
1516
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
1517
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
1514
1518
  on_focus: EventType[()] | None = None,
1515
1519
  on_mount: EventType[()] | None = None,
1516
1520
  on_mouse_down: EventType[()] | None = None,
@@ -1521,6 +1525,7 @@ class Quote(elements.Q, RadixThemesComponent):
1521
1525
  on_mouse_over: EventType[()] | None = None,
1522
1526
  on_mouse_up: EventType[()] | None = None,
1523
1527
  on_scroll: EventType[()] | None = None,
1528
+ on_scroll_end: EventType[()] | None = None,
1524
1529
  on_unmount: EventType[()] | None = None,
1525
1530
  **props,
1526
1531
  ) -> Quote:
@@ -1757,9 +1762,9 @@ class Strong(elements.Strong, RadixThemesComponent):
1757
1762
  autofocus: bool | None = None,
1758
1763
  custom_attrs: dict[str, Var | Any] | None = None,
1759
1764
  on_blur: EventType[()] | None = None,
1760
- on_click: EventType[()] | None = None,
1761
- on_context_menu: EventType[()] | None = None,
1762
- on_double_click: EventType[()] | None = None,
1765
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
1766
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
1767
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
1763
1768
  on_focus: EventType[()] | None = None,
1764
1769
  on_mount: EventType[()] | None = None,
1765
1770
  on_mouse_down: EventType[()] | None = None,
@@ -1770,6 +1775,7 @@ class Strong(elements.Strong, RadixThemesComponent):
1770
1775
  on_mouse_over: EventType[()] | None = None,
1771
1776
  on_mouse_up: EventType[()] | None = None,
1772
1777
  on_scroll: EventType[()] | None = None,
1778
+ on_scroll_end: EventType[()] | None = None,
1773
1779
  on_unmount: EventType[()] | None = None,
1774
1780
  **props,
1775
1781
  ) -> Strong:
@@ -2141,9 +2147,9 @@ class TextNamespace(ComponentNamespace):
2141
2147
  autofocus: bool | None = None,
2142
2148
  custom_attrs: dict[str, Var | Any] | None = None,
2143
2149
  on_blur: EventType[()] | None = None,
2144
- on_click: EventType[()] | None = None,
2145
- on_context_menu: EventType[()] | None = None,
2146
- on_double_click: EventType[()] | None = None,
2150
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
2151
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
2152
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
2147
2153
  on_focus: EventType[()] | None = None,
2148
2154
  on_mount: EventType[()] | None = None,
2149
2155
  on_mouse_down: EventType[()] | None = None,
@@ -2154,6 +2160,7 @@ class TextNamespace(ComponentNamespace):
2154
2160
  on_mouse_over: EventType[()] | None = None,
2155
2161
  on_mouse_up: EventType[()] | None = None,
2156
2162
  on_scroll: EventType[()] | None = None,
2163
+ on_scroll_end: EventType[()] | None = None,
2157
2164
  on_unmount: EventType[()] | None = None,
2158
2165
  **props,
2159
2166
  ) -> Text:
@@ -9,7 +9,7 @@ from typing import Any, overload
9
9
  import reflex
10
10
  from reflex.components.core.breakpoints import Breakpoints
11
11
  from reflex.components.react_player.react_player import ReactPlayer
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 Audio(ReactPlayer):
@@ -39,11 +39,11 @@ class Audio(ReactPlayer):
39
39
  on_blur: EventType[()] | None = None,
40
40
  on_buffer: EventType[()] | None = None,
41
41
  on_buffer_end: EventType[()] | None = None,
42
- on_click: EventType[()] | None = None,
42
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
43
43
  on_click_preview: EventType[()] | None = None,
44
- on_context_menu: EventType[()] | None = None,
44
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
45
45
  on_disable_pip: EventType[()] | None = None,
46
- on_double_click: EventType[()] | None = None,
46
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
47
47
  on_duration: EventType[()] | EventType[float] | None = None,
48
48
  on_enable_pip: EventType[()] | None = None,
49
49
  on_ended: EventType[()] | None = None,
@@ -64,6 +64,7 @@ class Audio(ReactPlayer):
64
64
  on_progress: EventType[()] | EventType[reflex.components.react_player.react_player.Progress] | None = None,
65
65
  on_ready: EventType[()] | None = None,
66
66
  on_scroll: EventType[()] | None = None,
67
+ on_scroll_end: EventType[()] | None = None,
67
68
  on_seek: EventType[()] | EventType[float] | None = None,
68
69
  on_start: EventType[()] | None = None,
69
70
  on_unmount: EventType[()] | None = None,
@@ -8,7 +8,7 @@ from typing import Any, TypedDict, overload
8
8
 
9
9
  from reflex.components.component import NoSSRComponent
10
10
  from reflex.components.core.breakpoints import Breakpoints
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
  class Progress(TypedDict):
@@ -44,11 +44,11 @@ class ReactPlayer(NoSSRComponent):
44
44
  on_blur: EventType[()] | None = None,
45
45
  on_buffer: EventType[()] | None = None,
46
46
  on_buffer_end: EventType[()] | None = None,
47
- on_click: EventType[()] | None = None,
47
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
48
48
  on_click_preview: EventType[()] | None = None,
49
- on_context_menu: EventType[()] | None = None,
49
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
50
50
  on_disable_pip: EventType[()] | None = None,
51
- on_double_click: EventType[()] | None = None,
51
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
52
52
  on_duration: EventType[()] | EventType[float] | None = None,
53
53
  on_enable_pip: EventType[()] | None = None,
54
54
  on_ended: EventType[()] | None = None,
@@ -69,6 +69,7 @@ class ReactPlayer(NoSSRComponent):
69
69
  on_progress: EventType[()] | EventType[Progress] | None = None,
70
70
  on_ready: EventType[()] | None = None,
71
71
  on_scroll: EventType[()] | None = None,
72
+ on_scroll_end: EventType[()] | None = None,
72
73
  on_seek: EventType[()] | EventType[float] | None = None,
73
74
  on_start: EventType[()] | None = None,
74
75
  on_unmount: EventType[()] | None = None,
@@ -9,7 +9,7 @@ from typing import Any, overload
9
9
  import reflex
10
10
  from reflex.components.core.breakpoints import Breakpoints
11
11
  from reflex.components.react_player.react_player import ReactPlayer
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 Video(ReactPlayer):
@@ -39,11 +39,11 @@ class Video(ReactPlayer):
39
39
  on_blur: EventType[()] | None = None,
40
40
  on_buffer: EventType[()] | None = None,
41
41
  on_buffer_end: EventType[()] | None = None,
42
- on_click: EventType[()] | None = None,
42
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
43
43
  on_click_preview: EventType[()] | None = None,
44
- on_context_menu: EventType[()] | None = None,
44
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
45
45
  on_disable_pip: EventType[()] | None = None,
46
- on_double_click: EventType[()] | None = None,
46
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
47
47
  on_duration: EventType[()] | EventType[float] | None = None,
48
48
  on_enable_pip: EventType[()] | None = None,
49
49
  on_ended: EventType[()] | None = None,
@@ -64,6 +64,7 @@ class Video(ReactPlayer):
64
64
  on_progress: EventType[()] | EventType[reflex.components.react_player.react_player.Progress] | None = None,
65
65
  on_ready: EventType[()] | None = None,
66
66
  on_scroll: EventType[()] | None = None,
67
+ on_scroll_end: EventType[()] | None = None,
67
68
  on_seek: EventType[()] | EventType[float] | None = None,
68
69
  on_start: EventType[()] | None = None,
69
70
  on_unmount: EventType[()] | None = None,
@@ -247,7 +247,8 @@ class Brush(Recharts):
247
247
  # The stroke color of brush
248
248
  stroke: Var[str | Color]
249
249
 
250
- def get_event_triggers(self) -> dict[str, Var | Any]:
250
+ @classmethod
251
+ def get_event_triggers(cls) -> dict[str, Var | Any]:
251
252
  """Get the event triggers that pass the component's value to the handler.
252
253
 
253
254
  Returns: