reflex 0.5.10a3__py3-none-any.whl → 0.6.0__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 (303) hide show
  1. reflex/.templates/jinja/custom_components/pyproject.toml.jinja2 +2 -2
  2. reflex/.templates/jinja/web/pages/_app.js.jinja2 +1 -1
  3. reflex/.templates/jinja/web/pages/utils.js.jinja2 +4 -4
  4. reflex/.templates/jinja/web/utils/context.js.jinja2 +1 -1
  5. reflex/.templates/jinja/web/utils/theme.js.jinja2 +1 -1
  6. reflex/.templates/web/utils/state.js +3 -1
  7. reflex/__init__.py +10 -3
  8. reflex/__init__.pyi +3 -2
  9. reflex/app.py +47 -11
  10. reflex/app_module_for_backend.py +1 -1
  11. reflex/base.py +3 -2
  12. reflex/compiler/compiler.py +5 -5
  13. reflex/compiler/utils.py +5 -3
  14. reflex/components/base/app_wrap.py +2 -4
  15. reflex/components/base/app_wrap.pyi +16 -26
  16. reflex/components/base/bare.py +6 -4
  17. reflex/components/base/body.pyi +16 -26
  18. reflex/components/base/document.pyi +76 -126
  19. reflex/components/base/error_boundary.py +9 -8
  20. reflex/components/base/error_boundary.pyi +18 -30
  21. reflex/components/base/fragment.pyi +16 -26
  22. reflex/components/base/head.pyi +31 -51
  23. reflex/components/base/link.py +1 -1
  24. reflex/components/base/link.pyi +31 -51
  25. reflex/components/base/meta.pyi +61 -101
  26. reflex/components/base/script.py +2 -2
  27. reflex/components/base/script.pyi +20 -36
  28. reflex/components/component.py +107 -130
  29. reflex/components/core/banner.py +61 -66
  30. reflex/components/core/banner.pyi +129 -230
  31. reflex/components/core/client_side_routing.py +2 -2
  32. reflex/components/core/client_side_routing.pyi +31 -51
  33. reflex/components/core/clipboard.py +4 -3
  34. reflex/components/core/clipboard.pyi +19 -31
  35. reflex/components/core/cond.py +21 -44
  36. reflex/components/core/debounce.py +7 -9
  37. reflex/components/core/debounce.pyi +19 -31
  38. reflex/components/core/foreach.py +4 -14
  39. reflex/components/core/html.py +1 -1
  40. reflex/components/core/html.pyi +34 -44
  41. reflex/components/core/match.py +36 -43
  42. reflex/components/core/upload.py +27 -26
  43. reflex/components/core/upload.pyi +81 -116
  44. reflex/components/datadisplay/code.py +55 -29
  45. reflex/components/datadisplay/code.pyi +303 -410
  46. reflex/components/datadisplay/dataeditor.py +13 -9
  47. reflex/components/datadisplay/dataeditor.pyi +39 -51
  48. reflex/components/el/__init__.py +0 -1
  49. reflex/components/el/__init__.pyi +0 -11
  50. reflex/components/el/element.pyi +16 -26
  51. reflex/components/el/elements/__init__.py +1 -7
  52. reflex/components/el/elements/__init__.pyi +1 -15
  53. reflex/components/el/elements/base.py +1 -1
  54. reflex/components/el/elements/base.pyi +33 -43
  55. reflex/components/el/elements/forms.py +26 -33
  56. reflex/components/el/elements/forms.pyi +542 -694
  57. reflex/components/el/elements/inline.py +1 -1
  58. reflex/components/el/elements/inline.pyi +909 -1189
  59. reflex/components/el/elements/media.py +1 -22
  60. reflex/components/el/elements/media.pyi +765 -975
  61. reflex/components/el/elements/metadata.py +3 -5
  62. reflex/components/el/elements/metadata.pyi +175 -235
  63. reflex/components/el/elements/other.py +1 -1
  64. reflex/components/el/elements/other.pyi +228 -298
  65. reflex/components/el/elements/scripts.py +1 -1
  66. reflex/components/el/elements/scripts.pyi +106 -136
  67. reflex/components/el/elements/sectioning.py +0 -2
  68. reflex/components/el/elements/sectioning.pyi +481 -631
  69. reflex/components/el/elements/tables.py +1 -1
  70. reflex/components/el/elements/tables.pyi +341 -441
  71. reflex/components/el/elements/typography.py +1 -1
  72. reflex/components/el/elements/typography.pyi +491 -641
  73. reflex/components/gridjs/datatable.py +9 -13
  74. reflex/components/gridjs/datatable.pyi +33 -53
  75. reflex/components/lucide/icon.py +3 -127
  76. reflex/components/lucide/icon.pyi +31 -160
  77. reflex/components/markdown/markdown.py +32 -42
  78. reflex/components/markdown/markdown.pyi +28 -41
  79. reflex/components/moment/moment.py +13 -12
  80. reflex/components/moment/moment.pyi +22 -33
  81. reflex/components/next/base.pyi +16 -26
  82. reflex/components/next/image.py +1 -5
  83. reflex/components/next/image.pyi +21 -35
  84. reflex/components/next/link.py +1 -1
  85. reflex/components/next/link.pyi +16 -26
  86. reflex/components/next/video.py +1 -1
  87. reflex/components/next/video.pyi +16 -26
  88. reflex/components/plotly/plotly.py +17 -30
  89. reflex/components/plotly/plotly.pyi +38 -52
  90. reflex/components/props.py +21 -10
  91. reflex/components/radix/__init__.pyi +2 -1
  92. reflex/components/radix/primitives/accordion.py +6 -7
  93. reflex/components/radix/primitives/accordion.pyi +415 -485
  94. reflex/components/radix/primitives/base.py +1 -1
  95. reflex/components/radix/primitives/base.pyi +31 -51
  96. reflex/components/radix/primitives/drawer.py +1 -1
  97. reflex/components/radix/primitives/drawer.pyi +162 -262
  98. reflex/components/radix/primitives/form.py +1 -1
  99. reflex/components/radix/primitives/form.pyi +247 -353
  100. reflex/components/radix/primitives/progress.py +1 -1
  101. reflex/components/radix/primitives/progress.pyi +226 -276
  102. reflex/components/radix/primitives/slider.py +1 -1
  103. reflex/components/radix/primitives/slider.pyi +82 -132
  104. reflex/components/radix/themes/base.py +8 -25
  105. reflex/components/radix/themes/base.pyi +171 -242
  106. reflex/components/radix/themes/color_mode.py +11 -20
  107. reflex/components/radix/themes/color_mode.pyi +198 -231
  108. reflex/components/radix/themes/components/__init__.pyi +1 -0
  109. reflex/components/radix/themes/components/alert_dialog.py +1 -1
  110. reflex/components/radix/themes/components/alert_dialog.pyi +129 -199
  111. reflex/components/radix/themes/components/aspect_ratio.py +1 -1
  112. reflex/components/radix/themes/components/aspect_ratio.pyi +16 -26
  113. reflex/components/radix/themes/components/avatar.py +1 -1
  114. reflex/components/radix/themes/components/avatar.pyi +69 -79
  115. reflex/components/radix/themes/components/badge.py +1 -1
  116. reflex/components/radix/themes/components/badge.pyi +87 -97
  117. reflex/components/radix/themes/components/button.py +1 -1
  118. reflex/components/radix/themes/components/button.pyi +97 -107
  119. reflex/components/radix/themes/components/callout.py +1 -1
  120. reflex/components/radix/themes/components/callout.pyi +317 -367
  121. reflex/components/radix/themes/components/card.py +1 -1
  122. reflex/components/radix/themes/components/card.pyi +37 -47
  123. reflex/components/radix/themes/components/checkbox.py +2 -4
  124. reflex/components/radix/themes/components/checkbox.pyi +205 -241
  125. reflex/components/radix/themes/components/checkbox_cards.py +1 -1
  126. reflex/components/radix/themes/components/checkbox_cards.pyi +92 -112
  127. reflex/components/radix/themes/components/checkbox_group.py +1 -1
  128. reflex/components/radix/themes/components/checkbox_group.pyi +84 -104
  129. reflex/components/radix/themes/components/context_menu.py +1 -1
  130. reflex/components/radix/themes/components/context_menu.pyi +230 -310
  131. reflex/components/radix/themes/components/data_list.py +6 -1
  132. reflex/components/radix/themes/components/data_list.pyi +131 -166
  133. reflex/components/radix/themes/components/dialog.py +1 -1
  134. reflex/components/radix/themes/components/dialog.pyi +132 -202
  135. reflex/components/radix/themes/components/dropdown_menu.py +1 -1
  136. reflex/components/radix/themes/components/dropdown_menu.pyi +241 -323
  137. reflex/components/radix/themes/components/hover_card.py +1 -1
  138. reflex/components/radix/themes/components/hover_card.pyi +86 -126
  139. reflex/components/radix/themes/components/icon_button.py +1 -1
  140. reflex/components/radix/themes/components/icon_button.pyi +97 -107
  141. reflex/components/radix/themes/components/inset.py +1 -1
  142. reflex/components/radix/themes/components/inset.pyi +46 -56
  143. reflex/components/radix/themes/components/popover.py +1 -1
  144. reflex/components/radix/themes/components/popover.pyi +91 -131
  145. reflex/components/radix/themes/components/progress.py +1 -1
  146. reflex/components/radix/themes/components/progress.pyi +70 -80
  147. reflex/components/radix/themes/components/radio.py +1 -1
  148. reflex/components/radix/themes/components/radio.pyi +68 -78
  149. reflex/components/radix/themes/components/radio_cards.py +1 -1
  150. reflex/components/radix/themes/components/radio_cards.pyi +96 -116
  151. reflex/components/radix/themes/components/radio_group.py +32 -31
  152. reflex/components/radix/themes/components/radio_group.pyi +230 -266
  153. reflex/components/radix/themes/components/scroll_area.py +1 -1
  154. reflex/components/radix/themes/components/scroll_area.pyi +20 -30
  155. reflex/components/radix/themes/components/segmented_control.py +1 -1
  156. reflex/components/radix/themes/components/segmented_control.pyi +88 -110
  157. reflex/components/radix/themes/components/select.py +1 -1
  158. reflex/components/radix/themes/components/select.pyi +365 -461
  159. reflex/components/radix/themes/components/separator.py +2 -4
  160. reflex/components/radix/themes/components/separator.pyi +68 -78
  161. reflex/components/radix/themes/components/skeleton.py +1 -1
  162. reflex/components/radix/themes/components/skeleton.pyi +22 -32
  163. reflex/components/radix/themes/components/slider.py +1 -1
  164. reflex/components/radix/themes/components/slider.pyi +74 -86
  165. reflex/components/radix/themes/components/spinner.py +1 -1
  166. reflex/components/radix/themes/components/spinner.pyi +18 -28
  167. reflex/components/radix/themes/components/switch.py +1 -1
  168. reflex/components/radix/themes/components/switch.pyi +70 -82
  169. reflex/components/radix/themes/components/table.py +1 -1
  170. reflex/components/radix/themes/components/table.pyi +254 -324
  171. reflex/components/radix/themes/components/tabs.py +1 -1
  172. reflex/components/radix/themes/components/tabs.pyi +134 -188
  173. reflex/components/radix/themes/components/text_area.py +1 -1
  174. reflex/components/radix/themes/components/text_area.pyi +95 -109
  175. reflex/components/radix/themes/components/text_field.py +1 -80
  176. reflex/components/radix/themes/components/text_field.pyi +245 -290
  177. reflex/components/radix/themes/components/tooltip.py +1 -1
  178. reflex/components/radix/themes/components/tooltip.pyi +25 -35
  179. reflex/components/radix/themes/layout/__init__.pyi +1 -0
  180. reflex/components/radix/themes/layout/base.py +1 -1
  181. reflex/components/radix/themes/layout/base.pyi +55 -65
  182. reflex/components/radix/themes/layout/box.pyi +33 -43
  183. reflex/components/radix/themes/layout/center.pyi +55 -65
  184. reflex/components/radix/themes/layout/container.py +2 -4
  185. reflex/components/radix/themes/layout/container.pyi +35 -45
  186. reflex/components/radix/themes/layout/flex.py +1 -1
  187. reflex/components/radix/themes/layout/flex.pyi +55 -65
  188. reflex/components/radix/themes/layout/grid.py +1 -1
  189. reflex/components/radix/themes/layout/grid.pyi +63 -73
  190. reflex/components/radix/themes/layout/list.py +1 -1
  191. reflex/components/radix/themes/layout/list.pyi +188 -238
  192. reflex/components/radix/themes/layout/section.py +2 -4
  193. reflex/components/radix/themes/layout/section.pyi +35 -45
  194. reflex/components/radix/themes/layout/spacer.pyi +55 -65
  195. reflex/components/radix/themes/layout/stack.py +1 -1
  196. reflex/components/radix/themes/layout/stack.pyi +125 -155
  197. reflex/components/radix/themes/typography/blockquote.py +1 -1
  198. reflex/components/radix/themes/typography/blockquote.pyi +88 -98
  199. reflex/components/radix/themes/typography/code.py +1 -1
  200. reflex/components/radix/themes/typography/code.pyi +89 -99
  201. reflex/components/radix/themes/typography/heading.py +1 -1
  202. reflex/components/radix/themes/typography/heading.pyi +95 -105
  203. reflex/components/radix/themes/typography/link.py +1 -1
  204. reflex/components/radix/themes/typography/link.pyi +101 -111
  205. reflex/components/radix/themes/typography/text.py +1 -1
  206. reflex/components/radix/themes/typography/text.pyi +494 -564
  207. reflex/components/react_player/audio.pyi +32 -58
  208. reflex/components/react_player/react_player.py +1 -1
  209. reflex/components/react_player/react_player.pyi +32 -58
  210. reflex/components/react_player/video.pyi +32 -58
  211. reflex/components/recharts/cartesian.py +22 -19
  212. reflex/components/recharts/cartesian.pyi +658 -840
  213. reflex/components/recharts/charts.py +3 -3
  214. reflex/components/recharts/charts.pyi +238 -342
  215. reflex/components/recharts/general.py +8 -8
  216. reflex/components/recharts/general.pyi +175 -225
  217. reflex/components/recharts/polar.py +11 -11
  218. reflex/components/recharts/polar.pyi +135 -171
  219. reflex/components/recharts/recharts.pyi +31 -51
  220. reflex/components/sonner/toast.py +27 -31
  221. reflex/components/sonner/toast.pyi +36 -45
  222. reflex/components/suneditor/editor.py +1 -1
  223. reflex/components/suneditor/editor.pyi +54 -76
  224. reflex/components/tags/cond_tag.py +6 -4
  225. reflex/components/tags/iter_tag.py +37 -25
  226. reflex/components/tags/match_tag.py +6 -4
  227. reflex/components/tags/tag.py +43 -28
  228. reflex/constants/base.py +3 -1
  229. reflex/constants/event.py +1 -0
  230. reflex/custom_components/custom_components.py +3 -1
  231. reflex/event.py +166 -108
  232. reflex/experimental/__init__.py +25 -6
  233. reflex/experimental/client_state.py +34 -57
  234. reflex/experimental/hooks.py +12 -17
  235. reflex/experimental/layout.py +4 -4
  236. reflex/experimental/layout.pyi +130 -180
  237. reflex/middleware/hydrate_middleware.py +2 -0
  238. reflex/middleware/middleware.py +3 -3
  239. reflex/model.py +22 -0
  240. reflex/reflex.py +4 -0
  241. reflex/state.py +491 -110
  242. reflex/style.py +56 -39
  243. reflex/testing.py +8 -3
  244. reflex/utils/exceptions.py +32 -0
  245. reflex/utils/exec.py +0 -14
  246. reflex/utils/format.py +80 -209
  247. reflex/utils/imports.py +16 -73
  248. reflex/utils/net.py +43 -0
  249. reflex/utils/path_ops.py +13 -1
  250. reflex/utils/prerequisites.py +81 -41
  251. reflex/utils/pyi_generator.py +12 -6
  252. reflex/utils/serializers.py +13 -41
  253. reflex/utils/telemetry.py +3 -2
  254. reflex/utils/types.py +47 -7
  255. reflex/{experimental/vars → vars}/__init__.py +6 -3
  256. reflex/vars/base.py +2563 -0
  257. reflex/vars/function.py +196 -0
  258. reflex/vars/number.py +1158 -0
  259. reflex/vars/object.py +562 -0
  260. reflex/vars/sequence.py +1604 -0
  261. {reflex-0.5.10a3.dist-info → reflex-0.6.0.dist-info}/METADATA +6 -9
  262. reflex-0.6.0.dist-info/RECORD +382 -0
  263. reflex/.templates/apps/demo/.gitignore +0 -4
  264. reflex/.templates/apps/demo/assets/favicon.ico +0 -0
  265. reflex/.templates/apps/demo/assets/github.svg +0 -10
  266. reflex/.templates/apps/demo/assets/icon.svg +0 -37
  267. reflex/.templates/apps/demo/assets/logo.svg +0 -68
  268. reflex/.templates/apps/demo/assets/paneleft.svg +0 -13
  269. reflex/.templates/apps/demo/code/__init__.py +0 -1
  270. reflex/.templates/apps/demo/code/demo.py +0 -127
  271. reflex/.templates/apps/demo/code/pages/__init__.py +0 -7
  272. reflex/.templates/apps/demo/code/pages/chatapp.py +0 -31
  273. reflex/.templates/apps/demo/code/pages/datatable.py +0 -360
  274. reflex/.templates/apps/demo/code/pages/forms.py +0 -257
  275. reflex/.templates/apps/demo/code/pages/graphing.py +0 -253
  276. reflex/.templates/apps/demo/code/pages/home.py +0 -56
  277. reflex/.templates/apps/demo/code/sidebar.py +0 -178
  278. reflex/.templates/apps/demo/code/state.py +0 -22
  279. reflex/.templates/apps/demo/code/states/form_state.py +0 -40
  280. reflex/.templates/apps/demo/code/states/pie_state.py +0 -47
  281. reflex/.templates/apps/demo/code/styles.py +0 -68
  282. reflex/.templates/apps/demo/code/webui/__init__.py +0 -0
  283. reflex/.templates/apps/demo/code/webui/components/__init__.py +0 -4
  284. reflex/.templates/apps/demo/code/webui/components/chat.py +0 -118
  285. reflex/.templates/apps/demo/code/webui/components/loading_icon.py +0 -19
  286. reflex/.templates/apps/demo/code/webui/components/modal.py +0 -56
  287. reflex/.templates/apps/demo/code/webui/components/navbar.py +0 -70
  288. reflex/.templates/apps/demo/code/webui/components/sidebar.py +0 -66
  289. reflex/.templates/apps/demo/code/webui/state.py +0 -146
  290. reflex/.templates/apps/demo/code/webui/styles.py +0 -88
  291. reflex/.templates/web/components/reflex/chakra_color_mode_provider.js +0 -36
  292. reflex/experimental/vars/base.py +0 -583
  293. reflex/experimental/vars/function.py +0 -290
  294. reflex/experimental/vars/number.py +0 -1458
  295. reflex/experimental/vars/object.py +0 -804
  296. reflex/experimental/vars/sequence.py +0 -1764
  297. reflex/utils/watch.py +0 -96
  298. reflex/vars.py +0 -2604
  299. reflex/vars.pyi +0 -218
  300. reflex-0.5.10a3.dist-info/RECORD +0 -413
  301. {reflex-0.5.10a3.dist-info → reflex-0.6.0.dist-info}/LICENSE +0 -0
  302. {reflex-0.5.10a3.dist-info → reflex-0.6.0.dist-info}/WHEEL +0 -0
  303. {reflex-0.5.10a3.dist-info → reflex-0.6.0.dist-info}/entry_points.txt +0 -0
@@ -19,27 +19,24 @@ from reflex.components.radix.themes.typography.text import Text
19
19
  from reflex.components.tags.tag import Tag
20
20
  from reflex.utils import types
21
21
  from reflex.utils.imports import ImportDict, ImportVar
22
- from reflex.vars import Var
22
+ from reflex.vars.base import LiteralVar, Var
23
23
 
24
24
  # Special vars used in the component map.
25
- _CHILDREN = Var.create_safe("children", _var_is_local=False, _var_is_string=False)
26
- _PROPS = Var.create_safe("...props", _var_is_local=False, _var_is_string=False)
27
- _MOCK_ARG = Var.create_safe("", _var_is_string=False)
25
+ _CHILDREN = Var(_js_expr="children", _var_type=str)
26
+ _PROPS = Var(_js_expr="...props")
27
+ _PROPS_IN_TAG = Var(_js_expr="{...props}")
28
+ _MOCK_ARG = Var(_js_expr="", _var_type=str)
28
29
 
29
30
  # Special remark plugins.
30
- _REMARK_MATH = Var.create_safe("remarkMath", _var_is_local=False, _var_is_string=False)
31
- _REMARK_GFM = Var.create_safe("remarkGfm", _var_is_local=False, _var_is_string=False)
32
- _REMARK_UNWRAP_IMAGES = Var.create_safe(
33
- "remarkUnwrapImages", _var_is_local=False, _var_is_string=False
34
- )
35
- _REMARK_PLUGINS = Var.create_safe([_REMARK_MATH, _REMARK_GFM, _REMARK_UNWRAP_IMAGES])
31
+ _REMARK_MATH = Var(_js_expr="remarkMath")
32
+ _REMARK_GFM = Var(_js_expr="remarkGfm")
33
+ _REMARK_UNWRAP_IMAGES = Var(_js_expr="remarkUnwrapImages")
34
+ _REMARK_PLUGINS = LiteralVar.create([_REMARK_MATH, _REMARK_GFM, _REMARK_UNWRAP_IMAGES])
36
35
 
37
36
  # Special rehype plugins.
38
- _REHYPE_KATEX = Var.create_safe(
39
- "rehypeKatex", _var_is_local=False, _var_is_string=False
40
- )
41
- _REHYPE_RAW = Var.create_safe("rehypeRaw", _var_is_local=False, _var_is_string=False)
42
- _REHYPE_PLUGINS = Var.create_safe([_REHYPE_KATEX, _REHYPE_RAW])
37
+ _REHYPE_KATEX = Var(_js_expr="rehypeKatex")
38
+ _REHYPE_RAW = Var(_js_expr="rehypeRaw")
39
+ _REHYPE_PLUGINS = LiteralVar.create([_REHYPE_KATEX, _REHYPE_RAW])
43
40
 
44
41
  # These tags do NOT get props passed to them
45
42
  NO_PROPS_TAGS = ("ul", "ol", "li")
@@ -157,23 +154,23 @@ class Markdown(Component):
157
154
  {
158
155
  "": "katex/dist/katex.min.css",
159
156
  "remark-math@5.1.1": ImportVar(
160
- tag=_REMARK_MATH._var_name, is_default=True
157
+ tag=_REMARK_MATH._js_expr, is_default=True
161
158
  ),
162
159
  "remark-gfm@3.0.1": ImportVar(
163
- tag=_REMARK_GFM._var_name, is_default=True
160
+ tag=_REMARK_GFM._js_expr, is_default=True
164
161
  ),
165
162
  "remark-unwrap-images@4.0.0": ImportVar(
166
- tag=_REMARK_UNWRAP_IMAGES._var_name, is_default=True
163
+ tag=_REMARK_UNWRAP_IMAGES._js_expr, is_default=True
167
164
  ),
168
165
  "rehype-katex@6.0.3": ImportVar(
169
- tag=_REHYPE_KATEX._var_name, is_default=True
166
+ tag=_REHYPE_KATEX._js_expr, is_default=True
170
167
  ),
171
168
  "rehype-raw@6.1.1": ImportVar(
172
- tag=_REHYPE_RAW._var_name, is_default=True
169
+ tag=_REHYPE_RAW._js_expr, is_default=True
173
170
  ),
174
171
  },
175
172
  *[
176
- component(_MOCK_ARG)._get_imports() # type: ignore
173
+ component(_MOCK_ARG)._get_all_imports() # type: ignore
177
174
  for component in self.component_map.values()
178
175
  ],
179
176
  CodeBlock.create(theme="light")._get_imports(), # type: ignore,
@@ -197,21 +194,18 @@ class Markdown(Component):
197
194
  if tag not in self.component_map:
198
195
  raise ValueError(f"No markdown component found for tag: {tag}.")
199
196
 
200
- special_props = {_PROPS}
197
+ special_props = [_PROPS_IN_TAG]
201
198
  children = [_CHILDREN]
202
199
 
203
200
  # For certain tags, the props from the markdown renderer are not actually valid for the component.
204
201
  if tag in NO_PROPS_TAGS:
205
- special_props = set()
202
+ special_props = []
206
203
 
207
204
  # If the children are set as a prop, don't pass them as children.
208
205
  children_prop = props.pop("children", None)
209
206
  if children_prop is not None:
210
- special_props.add(
211
- Var.create_safe(f"children={str(children_prop)}", _var_is_string=False)
212
- )
207
+ special_props.append(Var(_js_expr=f"children={{{str(children_prop)}}}"))
213
208
  children = []
214
-
215
209
  # Get the component.
216
210
  component = self.component_map[tag](*children, **props).set(
217
211
  special_props=special_props
@@ -230,21 +224,22 @@ class Markdown(Component):
230
224
  """
231
225
  return str(self.get_component(tag, **props)).replace("\n", "")
232
226
 
233
- def format_component_map(self) -> dict[str, str]:
227
+ def format_component_map(self) -> dict[str, Var]:
234
228
  """Format the component map for rendering.
235
229
 
236
230
  Returns:
237
231
  The formatted component map.
238
232
  """
239
233
  components = {
240
- tag: f"{{({{node, {_CHILDREN._var_name}, {_PROPS._var_name}}}) => {self.format_component(tag)}}}"
234
+ tag: Var(
235
+ _js_expr=f"(({{node, {_CHILDREN._js_expr}, {_PROPS._js_expr}}}) => ({self.format_component(tag)}))"
236
+ )
241
237
  for tag in self.component_map
242
238
  }
243
239
 
244
240
  # Separate out inline code and code blocks.
245
- components[
246
- "code"
247
- ] = f"""{{({{node, inline, className, {_CHILDREN._var_name}, {_PROPS._var_name}}}) => {{
241
+ components["code"] = Var(
242
+ _js_expr=f"""(({{node, inline, className, {_CHILDREN._js_expr}, {_PROPS._js_expr}}}) => {{
248
243
  const match = (className || '').match(/language-(?<lang>.*)/);
249
244
  const language = match ? match[1] : '';
250
245
  if (language) {{
@@ -260,9 +255,10 @@ class Markdown(Component):
260
255
  return inline ? (
261
256
  {self.format_component("code")}
262
257
  ) : (
263
- {self.format_component("codeblock", language=Var.create_safe("language", _var_is_local=False, _var_is_string=False))}
258
+ {self.format_component("codeblock", language=Var(_js_expr="language", _var_type=str))}
264
259
  );
265
- }}}}""".replace("\n", " ")
260
+ }})""".replace("\n", " ")
261
+ )
266
262
 
267
263
  return components
268
264
 
@@ -287,7 +283,7 @@ class Markdown(Component):
287
283
  function {self._get_component_map_name()} () {{
288
284
  {formatted_hooks}
289
285
  return (
290
- {str(Var.create(self.format_component_map()))}
286
+ {str(LiteralVar.create(self.format_component_map()))}
291
287
  )
292
288
  }}
293
289
  """
@@ -299,14 +295,8 @@ class Markdown(Component):
299
295
  .add_props(
300
296
  remark_plugins=_REMARK_PLUGINS,
301
297
  rehype_plugins=_REHYPE_PLUGINS,
298
+ components=Var(_js_expr=f"{self._get_component_map_name()}()"),
302
299
  )
303
300
  .remove_props("componentMap", "componentMapHash")
304
301
  )
305
- tag.special_props.add(
306
- Var.create_safe(
307
- f"components={{{self._get_component_map_name()}()}}",
308
- _var_is_local=True,
309
- _var_is_string=False,
310
- ),
311
- )
312
302
  return tag
@@ -10,22 +10,19 @@ from reflex.components.component import Component
10
10
  from reflex.event import EventHandler, EventSpec
11
11
  from reflex.style import Style
12
12
  from reflex.utils.imports import ImportDict
13
- from reflex.vars import BaseVar, Var
13
+ from reflex.vars.base import LiteralVar, Var
14
14
 
15
- _CHILDREN = Var.create_safe("children", _var_is_local=False, _var_is_string=False)
16
- _PROPS = Var.create_safe("...props", _var_is_local=False, _var_is_string=False)
17
- _MOCK_ARG = Var.create_safe("", _var_is_string=False)
18
- _REMARK_MATH = Var.create_safe("remarkMath", _var_is_local=False, _var_is_string=False)
19
- _REMARK_GFM = Var.create_safe("remarkGfm", _var_is_local=False, _var_is_string=False)
20
- _REMARK_UNWRAP_IMAGES = Var.create_safe(
21
- "remarkUnwrapImages", _var_is_local=False, _var_is_string=False
22
- )
23
- _REMARK_PLUGINS = Var.create_safe([_REMARK_MATH, _REMARK_GFM, _REMARK_UNWRAP_IMAGES])
24
- _REHYPE_KATEX = Var.create_safe(
25
- "rehypeKatex", _var_is_local=False, _var_is_string=False
26
- )
27
- _REHYPE_RAW = Var.create_safe("rehypeRaw", _var_is_local=False, _var_is_string=False)
28
- _REHYPE_PLUGINS = Var.create_safe([_REHYPE_KATEX, _REHYPE_RAW])
15
+ _CHILDREN = Var(_js_expr="children", _var_type=str)
16
+ _PROPS = Var(_js_expr="...props")
17
+ _PROPS_IN_TAG = Var(_js_expr="{...props}")
18
+ _MOCK_ARG = Var(_js_expr="", _var_type=str)
19
+ _REMARK_MATH = Var(_js_expr="remarkMath")
20
+ _REMARK_GFM = Var(_js_expr="remarkGfm")
21
+ _REMARK_UNWRAP_IMAGES = Var(_js_expr="remarkUnwrapImages")
22
+ _REMARK_PLUGINS = LiteralVar.create([_REMARK_MATH, _REMARK_GFM, _REMARK_UNWRAP_IMAGES])
23
+ _REHYPE_KATEX = Var(_js_expr="rehypeKatex")
24
+ _REHYPE_RAW = Var(_js_expr="rehypeRaw")
25
+ _REHYPE_PLUGINS = LiteralVar.create([_REHYPE_KATEX, _REHYPE_RAW])
29
26
  NO_PROPS_TAGS = ("ul", "ol", "li")
30
27
 
31
28
  @lru_cache
@@ -45,50 +42,40 @@ class Markdown(Component):
45
42
  class_name: Optional[Any] = None,
46
43
  autofocus: Optional[bool] = None,
47
44
  custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
48
- on_blur: Optional[
49
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
50
- ] = None,
51
- on_click: Optional[
52
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
53
- ] = None,
45
+ on_blur: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
46
+ on_click: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
54
47
  on_context_menu: Optional[
55
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
48
+ Union[EventHandler, EventSpec, list, Callable, Var]
56
49
  ] = None,
57
50
  on_double_click: Optional[
58
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
59
- ] = None,
60
- on_focus: Optional[
61
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
62
- ] = None,
63
- on_mount: Optional[
64
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
51
+ Union[EventHandler, EventSpec, list, Callable, Var]
65
52
  ] = None,
53
+ on_focus: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
54
+ on_mount: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
66
55
  on_mouse_down: Optional[
67
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
56
+ Union[EventHandler, EventSpec, list, Callable, Var]
68
57
  ] = None,
69
58
  on_mouse_enter: Optional[
70
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
59
+ Union[EventHandler, EventSpec, list, Callable, Var]
71
60
  ] = None,
72
61
  on_mouse_leave: Optional[
73
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
62
+ Union[EventHandler, EventSpec, list, Callable, Var]
74
63
  ] = None,
75
64
  on_mouse_move: Optional[
76
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
65
+ Union[EventHandler, EventSpec, list, Callable, Var]
77
66
  ] = None,
78
67
  on_mouse_out: Optional[
79
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
68
+ Union[EventHandler, EventSpec, list, Callable, Var]
80
69
  ] = None,
81
70
  on_mouse_over: Optional[
82
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
71
+ Union[EventHandler, EventSpec, list, Callable, Var]
83
72
  ] = None,
84
73
  on_mouse_up: Optional[
85
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
86
- ] = None,
87
- on_scroll: Optional[
88
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
74
+ Union[EventHandler, EventSpec, list, Callable, Var]
89
75
  ] = None,
76
+ on_scroll: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
90
77
  on_unmount: Optional[
91
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
78
+ Union[EventHandler, EventSpec, list, Callable, Var]
92
79
  ] = None,
93
80
  **props,
94
81
  ) -> "Markdown":
@@ -114,4 +101,4 @@ class Markdown(Component):
114
101
  def add_imports(self) -> ImportDict | list[ImportDict]: ...
115
102
  def get_component(self, tag: str, **props) -> Component: ...
116
103
  def format_component(self, tag: str, **props) -> str: ...
117
- def format_component_map(self) -> dict[str, str]: ...
104
+ def format_component_map(self) -> dict[str, Var]: ...
@@ -1,26 +1,27 @@
1
1
  """Moment component for humanized date rendering."""
2
2
 
3
+ import dataclasses
3
4
  from typing import List, Optional
4
5
 
5
- from reflex.base import Base
6
6
  from reflex.components.component import Component, NoSSRComponent
7
7
  from reflex.event import EventHandler
8
8
  from reflex.utils.imports import ImportDict
9
- from reflex.vars import Var
9
+ from reflex.vars.base import Var
10
10
 
11
11
 
12
- class MomentDelta(Base):
12
+ @dataclasses.dataclass(frozen=True)
13
+ class MomentDelta:
13
14
  """A delta used for add/subtract prop in Moment."""
14
15
 
15
- years: Optional[int]
16
- quarters: Optional[int]
17
- months: Optional[int]
18
- weeks: Optional[int]
19
- days: Optional[int]
20
- hours: Optional[int]
21
- minutess: Optional[int]
22
- seconds: Optional[int]
23
- milliseconds: Optional[int]
16
+ years: Optional[int] = dataclasses.field(default=None)
17
+ quarters: Optional[int] = dataclasses.field(default=None)
18
+ months: Optional[int] = dataclasses.field(default=None)
19
+ weeks: Optional[int] = dataclasses.field(default=None)
20
+ days: Optional[int] = dataclasses.field(default=None)
21
+ hours: Optional[int] = dataclasses.field(default=None)
22
+ minutess: Optional[int] = dataclasses.field(default=None)
23
+ seconds: Optional[int] = dataclasses.field(default=None)
24
+ milliseconds: Optional[int] = dataclasses.field(default=None)
24
25
 
25
26
 
26
27
  class Moment(NoSSRComponent):
@@ -3,16 +3,17 @@
3
3
  # ------------------- DO NOT EDIT ----------------------
4
4
  # This file was generated by `reflex/utils/pyi_generator.py`!
5
5
  # ------------------------------------------------------
6
+ import dataclasses
6
7
  from typing import Any, Callable, Dict, Optional, Union, overload
7
8
 
8
- from reflex.base import Base
9
9
  from reflex.components.component import NoSSRComponent
10
10
  from reflex.event import EventHandler, EventSpec
11
11
  from reflex.style import Style
12
12
  from reflex.utils.imports import ImportDict
13
- from reflex.vars import BaseVar, Var
13
+ from reflex.vars.base import Var
14
14
 
15
- class MomentDelta(Base):
15
+ @dataclasses.dataclass(frozen=True)
16
+ class MomentDelta:
16
17
  years: Optional[int]
17
18
  quarters: Optional[int]
18
19
  months: Optional[int]
@@ -34,8 +35,8 @@ class Moment(NoSSRComponent):
34
35
  format: Optional[Union[Var[str], str]] = None,
35
36
  trim: Optional[Union[Var[bool], bool]] = None,
36
37
  parse: Optional[Union[Var[str], str]] = None,
37
- add: Optional[Union[Var[MomentDelta], MomentDelta]] = None,
38
- subtract: Optional[Union[Var[MomentDelta], MomentDelta]] = None,
38
+ add: Optional[Union[MomentDelta, Var[MomentDelta]]] = None,
39
+ subtract: Optional[Union[MomentDelta, Var[MomentDelta]]] = None,
39
40
  from_now: Optional[Union[Var[bool], bool]] = None,
40
41
  from_now_during: Optional[Union[Var[int], int]] = None,
41
42
  to_now: Optional[Union[Var[bool], bool]] = None,
@@ -56,53 +57,41 @@ class Moment(NoSSRComponent):
56
57
  class_name: Optional[Any] = None,
57
58
  autofocus: Optional[bool] = None,
58
59
  custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
59
- on_blur: Optional[
60
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
61
- ] = None,
62
- on_change: Optional[
63
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
64
- ] = None,
65
- on_click: Optional[
66
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
67
- ] = None,
60
+ on_blur: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
61
+ on_change: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
62
+ on_click: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
68
63
  on_context_menu: Optional[
69
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
64
+ Union[EventHandler, EventSpec, list, Callable, Var]
70
65
  ] = None,
71
66
  on_double_click: Optional[
72
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
73
- ] = None,
74
- on_focus: Optional[
75
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
76
- ] = None,
77
- on_mount: Optional[
78
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
67
+ Union[EventHandler, EventSpec, list, Callable, Var]
79
68
  ] = None,
69
+ on_focus: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
70
+ on_mount: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
80
71
  on_mouse_down: Optional[
81
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
72
+ Union[EventHandler, EventSpec, list, Callable, Var]
82
73
  ] = None,
83
74
  on_mouse_enter: Optional[
84
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
75
+ Union[EventHandler, EventSpec, list, Callable, Var]
85
76
  ] = None,
86
77
  on_mouse_leave: Optional[
87
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
78
+ Union[EventHandler, EventSpec, list, Callable, Var]
88
79
  ] = None,
89
80
  on_mouse_move: Optional[
90
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
81
+ Union[EventHandler, EventSpec, list, Callable, Var]
91
82
  ] = None,
92
83
  on_mouse_out: Optional[
93
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
84
+ Union[EventHandler, EventSpec, list, Callable, Var]
94
85
  ] = None,
95
86
  on_mouse_over: Optional[
96
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
87
+ Union[EventHandler, EventSpec, list, Callable, Var]
97
88
  ] = None,
98
89
  on_mouse_up: Optional[
99
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
100
- ] = None,
101
- on_scroll: Optional[
102
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
90
+ Union[EventHandler, EventSpec, list, Callable, Var]
103
91
  ] = None,
92
+ on_scroll: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
104
93
  on_unmount: Optional[
105
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
94
+ Union[EventHandler, EventSpec, list, Callable, Var]
106
95
  ] = None,
107
96
  **props,
108
97
  ) -> "Moment":
@@ -8,7 +8,7 @@ from typing import Any, Callable, Dict, Optional, Union, overload
8
8
  from reflex.components.component import Component
9
9
  from reflex.event import EventHandler, EventSpec
10
10
  from reflex.style import Style
11
- from reflex.vars import BaseVar, Var
11
+ from reflex.vars.base import Var
12
12
 
13
13
  class NextComponent(Component):
14
14
  ...
@@ -24,50 +24,40 @@ class NextComponent(Component):
24
24
  class_name: Optional[Any] = None,
25
25
  autofocus: Optional[bool] = None,
26
26
  custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
27
- on_blur: Optional[
28
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
29
- ] = None,
30
- on_click: Optional[
31
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
32
- ] = None,
27
+ on_blur: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
28
+ on_click: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
33
29
  on_context_menu: Optional[
34
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
30
+ Union[EventHandler, EventSpec, list, Callable, Var]
35
31
  ] = None,
36
32
  on_double_click: Optional[
37
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
38
- ] = None,
39
- on_focus: Optional[
40
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
41
- ] = None,
42
- on_mount: Optional[
43
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
33
+ Union[EventHandler, EventSpec, list, Callable, Var]
44
34
  ] = None,
35
+ on_focus: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
36
+ on_mount: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
45
37
  on_mouse_down: Optional[
46
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
38
+ Union[EventHandler, EventSpec, list, Callable, Var]
47
39
  ] = None,
48
40
  on_mouse_enter: Optional[
49
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
41
+ Union[EventHandler, EventSpec, list, Callable, Var]
50
42
  ] = None,
51
43
  on_mouse_leave: Optional[
52
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
44
+ Union[EventHandler, EventSpec, list, Callable, Var]
53
45
  ] = None,
54
46
  on_mouse_move: Optional[
55
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
47
+ Union[EventHandler, EventSpec, list, Callable, Var]
56
48
  ] = None,
57
49
  on_mouse_out: Optional[
58
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
50
+ Union[EventHandler, EventSpec, list, Callable, Var]
59
51
  ] = None,
60
52
  on_mouse_over: Optional[
61
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
53
+ Union[EventHandler, EventSpec, list, Callable, Var]
62
54
  ] = None,
63
55
  on_mouse_up: Optional[
64
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
65
- ] = None,
66
- on_scroll: Optional[
67
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
56
+ Union[EventHandler, EventSpec, list, Callable, Var]
68
57
  ] = None,
58
+ on_scroll: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
69
59
  on_unmount: Optional[
70
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
60
+ Union[EventHandler, EventSpec, list, Callable, Var]
71
61
  ] = None,
72
62
  **props,
73
63
  ) -> "NextComponent":
@@ -4,7 +4,7 @@ from typing import Any, Literal, Optional, Union
4
4
 
5
5
  from reflex.event import EventHandler
6
6
  from reflex.utils import types
7
- from reflex.vars import Var
7
+ from reflex.vars.base import Var
8
8
 
9
9
  from .base import NextComponent
10
10
 
@@ -102,8 +102,4 @@ class Image(NextComponent):
102
102
  # mysteriously, following `sizes` prop is needed to avoid blury images.
103
103
  props["sizes"] = "100vw"
104
104
 
105
- src = props.get("src", None)
106
- if src is not None and not isinstance(src, (Var)):
107
- props["src"] = Var.create(value=src, _var_is_string=True)
108
-
109
105
  return super().create(*children, **props)
@@ -7,7 +7,7 @@ from typing import Any, Callable, Dict, Literal, Optional, Union, overload
7
7
 
8
8
  from reflex.event import EventHandler, EventSpec
9
9
  from reflex.style import Style
10
- from reflex.vars import BaseVar, Var
10
+ from reflex.vars.base import Var
11
11
 
12
12
  from .base import NextComponent
13
13
 
@@ -19,16 +19,16 @@ class Image(NextComponent):
19
19
  *children,
20
20
  width: Optional[Union[int, str]] = None,
21
21
  height: Optional[Union[int, str]] = None,
22
- src: Optional[Union[Var[Any], Any]] = None,
22
+ src: Optional[Union[Any, Var[Any]]] = None,
23
23
  alt: Optional[Union[Var[str], str]] = None,
24
- loader: Optional[Union[Var[Any], Any]] = None,
24
+ loader: Optional[Union[Any, Var[Any]]] = None,
25
25
  fill: Optional[Union[Var[bool], bool]] = None,
26
26
  sizes: Optional[Union[Var[str], str]] = None,
27
27
  quality: Optional[Union[Var[int], int]] = None,
28
28
  priority: Optional[Union[Var[bool], bool]] = None,
29
29
  placeholder: Optional[Union[Var[str], str]] = None,
30
30
  loading: Optional[
31
- Union[Var[Literal["lazy", "eager"]], Literal["lazy", "eager"]]
31
+ Union[Literal["eager", "lazy"], Var[Literal["eager", "lazy"]]]
32
32
  ] = None,
33
33
  blurDataURL: Optional[Union[Var[str], str]] = None,
34
34
  style: Optional[Style] = None,
@@ -37,56 +37,42 @@ class Image(NextComponent):
37
37
  class_name: Optional[Any] = None,
38
38
  autofocus: Optional[bool] = None,
39
39
  custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
40
- on_blur: Optional[
41
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
42
- ] = None,
43
- on_click: Optional[
44
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
45
- ] = None,
40
+ on_blur: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
41
+ on_click: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
46
42
  on_context_menu: Optional[
47
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
43
+ Union[EventHandler, EventSpec, list, Callable, Var]
48
44
  ] = None,
49
45
  on_double_click: Optional[
50
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
51
- ] = None,
52
- on_error: Optional[
53
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
54
- ] = None,
55
- on_focus: Optional[
56
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
57
- ] = None,
58
- on_load: Optional[
59
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
60
- ] = None,
61
- on_mount: Optional[
62
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
46
+ Union[EventHandler, EventSpec, list, Callable, Var]
63
47
  ] = None,
48
+ on_error: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
49
+ on_focus: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
50
+ on_load: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
51
+ on_mount: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
64
52
  on_mouse_down: Optional[
65
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
53
+ Union[EventHandler, EventSpec, list, Callable, Var]
66
54
  ] = None,
67
55
  on_mouse_enter: Optional[
68
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
56
+ Union[EventHandler, EventSpec, list, Callable, Var]
69
57
  ] = None,
70
58
  on_mouse_leave: Optional[
71
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
59
+ Union[EventHandler, EventSpec, list, Callable, Var]
72
60
  ] = None,
73
61
  on_mouse_move: Optional[
74
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
62
+ Union[EventHandler, EventSpec, list, Callable, Var]
75
63
  ] = None,
76
64
  on_mouse_out: Optional[
77
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
65
+ Union[EventHandler, EventSpec, list, Callable, Var]
78
66
  ] = None,
79
67
  on_mouse_over: Optional[
80
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
68
+ Union[EventHandler, EventSpec, list, Callable, Var]
81
69
  ] = None,
82
70
  on_mouse_up: Optional[
83
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
84
- ] = None,
85
- on_scroll: Optional[
86
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
71
+ Union[EventHandler, EventSpec, list, Callable, Var]
87
72
  ] = None,
73
+ on_scroll: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
88
74
  on_unmount: Optional[
89
- Union[EventHandler, EventSpec, list, Callable, BaseVar]
75
+ Union[EventHandler, EventSpec, list, Callable, Var]
90
76
  ] = None,
91
77
  **props,
92
78
  ) -> "Image":
@@ -1,7 +1,7 @@
1
1
  """A link component."""
2
2
 
3
3
  from reflex.components.component import Component
4
- from reflex.vars import Var
4
+ from reflex.vars.base import Var
5
5
 
6
6
 
7
7
  class NextLink(Component):