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.
- reflex/.templates/jinja/app/rxconfig.py.jinja2 +4 -1
- reflex/.templates/jinja/web/package.json.jinja2 +1 -1
- reflex/.templates/jinja/web/pages/_app.js.jinja2 +16 -10
- reflex/.templates/jinja/web/pages/_document.js.jinja2 +1 -1
- reflex/.templates/jinja/web/pages/base_page.js.jinja2 +0 -1
- reflex/.templates/jinja/web/pages/stateful_component.js.jinja2 +4 -0
- reflex/.templates/jinja/web/utils/context.js.jinja2 +25 -8
- reflex/.templates/web/app/entry.client.js +8 -0
- reflex/.templates/web/app/routes.js +10 -0
- reflex/.templates/web/components/reflex/radix_themes_color_mode_provider.js +12 -37
- reflex/.templates/web/postcss.config.js +1 -1
- reflex/.templates/web/react-router.config.js +6 -0
- reflex/.templates/web/utils/client_side_routing.js +21 -19
- reflex/.templates/web/utils/react-theme.js +92 -0
- reflex/.templates/web/utils/state.js +160 -67
- reflex/.templates/web/vite.config.js +32 -0
- reflex/__init__.py +1 -6
- reflex/__init__.pyi +0 -4
- reflex/app.py +53 -116
- reflex/base.py +1 -87
- reflex/compiler/compiler.py +41 -8
- reflex/compiler/templates.py +3 -3
- reflex/compiler/utils.py +73 -33
- reflex/components/__init__.py +0 -2
- reflex/components/__init__.pyi +0 -3
- reflex/components/base/__init__.py +1 -5
- reflex/components/base/__init__.pyi +4 -6
- reflex/components/base/app_wrap.pyi +5 -4
- reflex/components/base/body.pyi +5 -4
- reflex/components/base/document.py +18 -14
- reflex/components/base/document.pyi +83 -27
- reflex/components/base/error_boundary.pyi +5 -4
- reflex/components/base/fragment.pyi +5 -4
- reflex/components/base/link.pyi +9 -7
- reflex/components/base/meta.pyi +17 -13
- reflex/components/base/script.py +60 -58
- reflex/components/base/script.pyi +246 -31
- reflex/components/base/strict_mode.pyi +5 -4
- reflex/components/component.py +146 -217
- reflex/components/core/__init__.py +1 -0
- reflex/components/core/__init__.pyi +1 -0
- reflex/components/core/auto_scroll.pyi +5 -4
- reflex/components/core/banner.pyi +25 -19
- reflex/components/core/client_side_routing.py +7 -6
- reflex/components/core/client_side_routing.pyi +6 -56
- reflex/components/core/clipboard.pyi +5 -4
- reflex/components/core/debounce.py +1 -0
- reflex/components/core/debounce.pyi +5 -4
- reflex/components/core/foreach.py +3 -2
- reflex/components/core/helmet.py +14 -0
- reflex/components/{next/base.pyi → core/helmet.pyi} +10 -7
- reflex/components/core/html.pyi +5 -4
- reflex/components/core/sticky.pyi +17 -13
- reflex/components/core/upload.py +2 -1
- reflex/components/core/upload.pyi +21 -16
- reflex/components/datadisplay/code.py +2 -72
- reflex/components/datadisplay/code.pyi +9 -10
- reflex/components/datadisplay/dataeditor.pyi +11 -6
- reflex/components/datadisplay/shiki_code_block.pyi +13 -10
- reflex/components/dynamic.py +5 -5
- reflex/components/el/element.pyi +5 -4
- reflex/components/el/elements/base.pyi +5 -4
- reflex/components/el/elements/forms.pyi +69 -52
- reflex/components/el/elements/inline.pyi +113 -85
- reflex/components/el/elements/media.pyi +105 -79
- reflex/components/el/elements/metadata.pyi +25 -19
- reflex/components/el/elements/other.pyi +29 -22
- reflex/components/el/elements/scripts.pyi +13 -10
- reflex/components/el/elements/sectioning.pyi +61 -46
- reflex/components/el/elements/tables.pyi +41 -31
- reflex/components/el/elements/typography.pyi +61 -46
- reflex/components/field.py +175 -0
- reflex/components/gridjs/datatable.py +2 -2
- reflex/components/gridjs/datatable.pyi +11 -9
- reflex/components/lucide/icon.py +6 -2
- reflex/components/lucide/icon.pyi +15 -10
- reflex/components/markdown/markdown.pyi +5 -4
- reflex/components/moment/moment.pyi +5 -4
- reflex/components/plotly/plotly.pyi +19 -10
- reflex/components/props.py +376 -27
- reflex/components/radix/primitives/accordion.py +8 -1
- reflex/components/radix/primitives/accordion.pyi +29 -22
- reflex/components/radix/primitives/base.pyi +9 -7
- reflex/components/radix/primitives/drawer.pyi +45 -34
- reflex/components/radix/primitives/form.pyi +41 -31
- reflex/components/radix/primitives/progress.pyi +21 -16
- reflex/components/radix/primitives/slider.pyi +21 -16
- reflex/components/radix/themes/base.py +3 -3
- reflex/components/radix/themes/base.pyi +33 -25
- reflex/components/radix/themes/color_mode.pyi +13 -10
- reflex/components/radix/themes/components/alert_dialog.pyi +29 -22
- reflex/components/radix/themes/components/aspect_ratio.pyi +5 -4
- reflex/components/radix/themes/components/avatar.pyi +5 -4
- reflex/components/radix/themes/components/badge.pyi +5 -4
- reflex/components/radix/themes/components/button.pyi +5 -4
- reflex/components/radix/themes/components/callout.pyi +21 -16
- reflex/components/radix/themes/components/card.pyi +5 -4
- reflex/components/radix/themes/components/checkbox.pyi +13 -10
- reflex/components/radix/themes/components/checkbox_cards.pyi +9 -7
- reflex/components/radix/themes/components/checkbox_group.pyi +9 -7
- reflex/components/radix/themes/components/context_menu.pyi +53 -40
- reflex/components/radix/themes/components/data_list.pyi +17 -13
- reflex/components/radix/themes/components/dialog.pyi +29 -22
- reflex/components/radix/themes/components/dropdown_menu.pyi +33 -25
- reflex/components/radix/themes/components/hover_card.pyi +17 -13
- reflex/components/radix/themes/components/icon_button.pyi +5 -4
- reflex/components/radix/themes/components/inset.pyi +5 -4
- reflex/components/radix/themes/components/popover.pyi +17 -13
- reflex/components/radix/themes/components/progress.pyi +5 -4
- reflex/components/radix/themes/components/radio.pyi +5 -4
- reflex/components/radix/themes/components/radio_cards.pyi +9 -7
- reflex/components/radix/themes/components/radio_group.pyi +17 -13
- reflex/components/radix/themes/components/scroll_area.pyi +5 -4
- reflex/components/radix/themes/components/segmented_control.pyi +9 -7
- reflex/components/radix/themes/components/select.pyi +37 -28
- reflex/components/radix/themes/components/separator.pyi +5 -4
- reflex/components/radix/themes/components/skeleton.pyi +5 -4
- reflex/components/radix/themes/components/slider.pyi +5 -4
- reflex/components/radix/themes/components/spinner.pyi +5 -4
- reflex/components/radix/themes/components/switch.pyi +5 -4
- reflex/components/radix/themes/components/table.pyi +29 -22
- reflex/components/radix/themes/components/tabs.pyi +21 -16
- reflex/components/radix/themes/components/text_area.pyi +5 -4
- reflex/components/radix/themes/components/text_field.pyi +13 -10
- reflex/components/radix/themes/components/tooltip.pyi +5 -4
- reflex/components/radix/themes/layout/base.pyi +5 -4
- reflex/components/radix/themes/layout/box.pyi +5 -4
- reflex/components/radix/themes/layout/center.pyi +5 -4
- reflex/components/radix/themes/layout/container.pyi +5 -4
- reflex/components/radix/themes/layout/flex.pyi +5 -4
- reflex/components/radix/themes/layout/grid.pyi +5 -4
- reflex/components/radix/themes/layout/list.pyi +21 -16
- reflex/components/radix/themes/layout/section.pyi +5 -4
- reflex/components/radix/themes/layout/spacer.pyi +5 -4
- reflex/components/radix/themes/layout/stack.pyi +13 -10
- reflex/components/radix/themes/typography/blockquote.pyi +5 -4
- reflex/components/radix/themes/typography/code.pyi +5 -4
- reflex/components/radix/themes/typography/heading.pyi +5 -4
- reflex/components/radix/themes/typography/link.py +46 -11
- reflex/components/radix/themes/typography/link.pyi +311 -6
- reflex/components/radix/themes/typography/text.pyi +29 -22
- reflex/components/react_player/audio.pyi +5 -4
- reflex/components/react_player/react_player.pyi +5 -4
- reflex/components/react_player/video.pyi +5 -4
- reflex/components/recharts/cartesian.py +2 -1
- reflex/components/recharts/cartesian.pyi +65 -46
- reflex/components/recharts/charts.py +4 -2
- reflex/components/recharts/charts.pyi +36 -24
- reflex/components/recharts/general.pyi +24 -18
- reflex/components/recharts/polar.py +8 -4
- reflex/components/recharts/polar.pyi +16 -10
- reflex/components/recharts/recharts.pyi +9 -7
- reflex/components/sonner/toast.py +2 -2
- reflex/components/sonner/toast.pyi +10 -8
- reflex/config.py +3 -77
- reflex/constants/__init__.py +2 -2
- reflex/constants/base.py +28 -11
- reflex/constants/compiler.py +5 -3
- reflex/constants/event.py +1 -0
- reflex/constants/installer.py +22 -16
- reflex/constants/route.py +19 -7
- reflex/constants/state.py +2 -0
- reflex/custom_components/custom_components.py +0 -14
- reflex/environment.py +1 -1
- reflex/event.py +178 -81
- reflex/experimental/__init__.py +0 -30
- reflex/istate/proxy.py +5 -3
- reflex/page.py +0 -27
- reflex/plugins/__init__.py +3 -2
- reflex/plugins/base.py +5 -1
- reflex/plugins/shared_tailwind.py +158 -0
- reflex/plugins/sitemap.py +206 -0
- reflex/plugins/tailwind_v3.py +13 -106
- reflex/plugins/tailwind_v4.py +15 -108
- reflex/reflex.py +1 -0
- reflex/route.py +15 -21
- reflex/state.py +134 -140
- reflex/testing.py +58 -10
- reflex/utils/build.py +38 -82
- reflex/utils/exec.py +59 -161
- reflex/utils/export.py +2 -2
- reflex/utils/imports.py +0 -4
- reflex/utils/misc.py +28 -0
- reflex/utils/prerequisites.py +65 -62
- reflex/utils/processes.py +8 -7
- reflex/utils/pyi_generator.py +21 -9
- reflex/utils/serializers.py +14 -1
- reflex/utils/types.py +196 -61
- reflex/vars/__init__.py +2 -0
- reflex/vars/base.py +367 -134
- {reflex-0.7.14a6.dist-info → reflex-0.8.0a2.dist-info}/METADATA +12 -5
- {reflex-0.7.14a6.dist-info → reflex-0.8.0a2.dist-info}/RECORD +195 -202
- reflex/.templates/web/next.config.js +0 -7
- reflex/components/base/head.py +0 -20
- reflex/components/base/head.pyi +0 -116
- reflex/components/next/__init__.py +0 -10
- reflex/components/next/base.py +0 -7
- reflex/components/next/image.py +0 -117
- reflex/components/next/image.pyi +0 -94
- reflex/components/next/link.py +0 -20
- reflex/components/next/link.pyi +0 -67
- reflex/components/next/video.py +0 -38
- reflex/components/next/video.pyi +0 -68
- reflex/components/suneditor/__init__.py +0 -5
- reflex/components/suneditor/editor.py +0 -269
- reflex/components/suneditor/editor.pyi +0 -199
- reflex/experimental/layout.py +0 -254
- reflex/experimental/layout.pyi +0 -814
- {reflex-0.7.14a6.dist-info → reflex-0.8.0a2.dist-info}/WHEEL +0 -0
- {reflex-0.7.14a6.dist-info → reflex-0.8.0a2.dist-info}/entry_points.txt +0 -0
- {reflex-0.7.14a6.dist-info → reflex-0.8.0a2.dist-info}/licenses/LICENSE +0 -0
|
@@ -11,7 +11,7 @@ from reflex.components.core.breakpoints import Breakpoints
|
|
|
11
11
|
from reflex.components.el.elements.base import BaseHTML
|
|
12
12
|
from reflex.components.el.elements.typography import Li, Ol, Ul
|
|
13
13
|
from reflex.components.markdown.markdown import MarkdownComponentMap
|
|
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
|
LiteralListStyleTypeUnordered = Literal["none", "disc", "circle", "square"]
|
|
@@ -266,9 +266,9 @@ class BaseList(BaseHTML, MarkdownComponentMap):
|
|
|
266
266
|
autofocus: bool | None = None,
|
|
267
267
|
custom_attrs: dict[str, Var | Any] | None = None,
|
|
268
268
|
on_blur: EventType[()] | None = None,
|
|
269
|
-
on_click: EventType[()] | None = None,
|
|
270
|
-
on_context_menu: EventType[()] | None = None,
|
|
271
|
-
on_double_click: EventType[()] | None = None,
|
|
269
|
+
on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
270
|
+
on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
271
|
+
on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
272
272
|
on_focus: EventType[()] | None = None,
|
|
273
273
|
on_mount: EventType[()] | None = None,
|
|
274
274
|
on_mouse_down: EventType[()] | None = None,
|
|
@@ -279,6 +279,7 @@ class BaseList(BaseHTML, MarkdownComponentMap):
|
|
|
279
279
|
on_mouse_over: EventType[()] | None = None,
|
|
280
280
|
on_mouse_up: EventType[()] | None = None,
|
|
281
281
|
on_scroll: EventType[()] | None = None,
|
|
282
|
+
on_scroll_end: EventType[()] | None = None,
|
|
282
283
|
on_unmount: EventType[()] | None = None,
|
|
283
284
|
**props,
|
|
284
285
|
) -> BaseList:
|
|
@@ -553,9 +554,9 @@ class UnorderedList(BaseList, Ul):
|
|
|
553
554
|
autofocus: bool | None = None,
|
|
554
555
|
custom_attrs: dict[str, Var | Any] | None = None,
|
|
555
556
|
on_blur: EventType[()] | None = None,
|
|
556
|
-
on_click: EventType[()] | None = None,
|
|
557
|
-
on_context_menu: EventType[()] | None = None,
|
|
558
|
-
on_double_click: EventType[()] | None = None,
|
|
557
|
+
on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
558
|
+
on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
559
|
+
on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
559
560
|
on_focus: EventType[()] | None = None,
|
|
560
561
|
on_mount: EventType[()] | None = None,
|
|
561
562
|
on_mouse_down: EventType[()] | None = None,
|
|
@@ -566,6 +567,7 @@ class UnorderedList(BaseList, Ul):
|
|
|
566
567
|
on_mouse_over: EventType[()] | None = None,
|
|
567
568
|
on_mouse_up: EventType[()] | None = None,
|
|
568
569
|
on_scroll: EventType[()] | None = None,
|
|
570
|
+
on_scroll_end: EventType[()] | None = None,
|
|
569
571
|
on_unmount: EventType[()] | None = None,
|
|
570
572
|
**props,
|
|
571
573
|
) -> UnorderedList:
|
|
@@ -843,9 +845,9 @@ class OrderedList(BaseList, Ol):
|
|
|
843
845
|
autofocus: bool | None = None,
|
|
844
846
|
custom_attrs: dict[str, Var | Any] | None = None,
|
|
845
847
|
on_blur: EventType[()] | None = None,
|
|
846
|
-
on_click: EventType[()] | None = None,
|
|
847
|
-
on_context_menu: EventType[()] | None = None,
|
|
848
|
-
on_double_click: EventType[()] | None = None,
|
|
848
|
+
on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
849
|
+
on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
850
|
+
on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
849
851
|
on_focus: EventType[()] | None = None,
|
|
850
852
|
on_mount: EventType[()] | None = None,
|
|
851
853
|
on_mouse_down: EventType[()] | None = None,
|
|
@@ -856,6 +858,7 @@ class OrderedList(BaseList, Ol):
|
|
|
856
858
|
on_mouse_over: EventType[()] | None = None,
|
|
857
859
|
on_mouse_up: EventType[()] | None = None,
|
|
858
860
|
on_scroll: EventType[()] | None = None,
|
|
861
|
+
on_scroll_end: EventType[()] | None = None,
|
|
859
862
|
on_unmount: EventType[()] | None = None,
|
|
860
863
|
**props,
|
|
861
864
|
) -> OrderedList:
|
|
@@ -1093,9 +1096,9 @@ class ListItem(Li, MarkdownComponentMap):
|
|
|
1093
1096
|
autofocus: bool | None = None,
|
|
1094
1097
|
custom_attrs: dict[str, Var | Any] | None = None,
|
|
1095
1098
|
on_blur: EventType[()] | None = None,
|
|
1096
|
-
on_click: EventType[()] | None = None,
|
|
1097
|
-
on_context_menu: EventType[()] | None = None,
|
|
1098
|
-
on_double_click: EventType[()] | None = None,
|
|
1099
|
+
on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
1100
|
+
on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
1101
|
+
on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
1099
1102
|
on_focus: EventType[()] | None = None,
|
|
1100
1103
|
on_mount: EventType[()] | None = None,
|
|
1101
1104
|
on_mouse_down: EventType[()] | None = None,
|
|
@@ -1106,6 +1109,7 @@ class ListItem(Li, MarkdownComponentMap):
|
|
|
1106
1109
|
on_mouse_over: EventType[()] | None = None,
|
|
1107
1110
|
on_mouse_up: EventType[()] | None = None,
|
|
1108
1111
|
on_scroll: EventType[()] | None = None,
|
|
1112
|
+
on_scroll_end: EventType[()] | None = None,
|
|
1109
1113
|
on_unmount: EventType[()] | None = None,
|
|
1110
1114
|
**props,
|
|
1111
1115
|
) -> ListItem:
|
|
@@ -1378,9 +1382,9 @@ class List(ComponentNamespace):
|
|
|
1378
1382
|
autofocus: bool | None = None,
|
|
1379
1383
|
custom_attrs: dict[str, Var | Any] | None = None,
|
|
1380
1384
|
on_blur: EventType[()] | None = None,
|
|
1381
|
-
on_click: EventType[()] | None = None,
|
|
1382
|
-
on_context_menu: EventType[()] | None = None,
|
|
1383
|
-
on_double_click: EventType[()] | None = None,
|
|
1385
|
+
on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
1386
|
+
on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
1387
|
+
on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
1384
1388
|
on_focus: EventType[()] | None = None,
|
|
1385
1389
|
on_mount: EventType[()] | None = None,
|
|
1386
1390
|
on_mouse_down: EventType[()] | None = None,
|
|
@@ -1391,6 +1395,7 @@ class List(ComponentNamespace):
|
|
|
1391
1395
|
on_mouse_over: EventType[()] | None = None,
|
|
1392
1396
|
on_mouse_up: EventType[()] | None = None,
|
|
1393
1397
|
on_scroll: EventType[()] | None = None,
|
|
1398
|
+
on_scroll_end: EventType[()] | None = None,
|
|
1394
1399
|
on_unmount: EventType[()] | None = None,
|
|
1395
1400
|
**props,
|
|
1396
1401
|
) -> BaseList:
|
|
@@ -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
|
LiteralSectionSize = Literal["1", "2", "3"]
|
|
@@ -214,9 +214,9 @@ class Section(elements.Section, RadixThemesComponent):
|
|
|
214
214
|
autofocus: bool | None = None,
|
|
215
215
|
custom_attrs: dict[str, Var | Any] | None = None,
|
|
216
216
|
on_blur: EventType[()] | None = None,
|
|
217
|
-
on_click: EventType[()] | None = None,
|
|
218
|
-
on_context_menu: EventType[()] | None = None,
|
|
219
|
-
on_double_click: EventType[()] | None = None,
|
|
217
|
+
on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
218
|
+
on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
219
|
+
on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
220
220
|
on_focus: EventType[()] | None = None,
|
|
221
221
|
on_mount: EventType[()] | None = None,
|
|
222
222
|
on_mouse_down: EventType[()] | None = None,
|
|
@@ -227,6 +227,7 @@ class Section(elements.Section, RadixThemesComponent):
|
|
|
227
227
|
on_mouse_over: EventType[()] | None = None,
|
|
228
228
|
on_mouse_up: EventType[()] | None = None,
|
|
229
229
|
on_scroll: EventType[()] | None = None,
|
|
230
|
+
on_scroll_end: EventType[()] | None = None,
|
|
230
231
|
on_unmount: EventType[()] | None = None,
|
|
231
232
|
**props,
|
|
232
233
|
) -> Section:
|
|
@@ -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 Spacer(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 Spacer(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
|
) -> Spacer:
|
|
@@ -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
|
|
@@ -250,9 +250,9 @@ class Stack(Flex):
|
|
|
250
250
|
autofocus: bool | None = None,
|
|
251
251
|
custom_attrs: dict[str, Var | Any] | None = None,
|
|
252
252
|
on_blur: EventType[()] | None = None,
|
|
253
|
-
on_click: EventType[()] | None = None,
|
|
254
|
-
on_context_menu: EventType[()] | None = None,
|
|
255
|
-
on_double_click: EventType[()] | None = None,
|
|
253
|
+
on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
254
|
+
on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
255
|
+
on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
256
256
|
on_focus: EventType[()] | None = None,
|
|
257
257
|
on_mount: EventType[()] | None = None,
|
|
258
258
|
on_mouse_down: EventType[()] | None = None,
|
|
@@ -263,6 +263,7 @@ class Stack(Flex):
|
|
|
263
263
|
on_mouse_over: EventType[()] | None = None,
|
|
264
264
|
on_mouse_up: EventType[()] | None = None,
|
|
265
265
|
on_scroll: EventType[()] | None = None,
|
|
266
|
+
on_scroll_end: EventType[()] | None = None,
|
|
266
267
|
on_unmount: EventType[()] | None = None,
|
|
267
268
|
**props,
|
|
268
269
|
) -> Stack:
|
|
@@ -543,9 +544,9 @@ class VStack(Stack):
|
|
|
543
544
|
autofocus: bool | None = None,
|
|
544
545
|
custom_attrs: dict[str, Var | Any] | None = None,
|
|
545
546
|
on_blur: EventType[()] | None = None,
|
|
546
|
-
on_click: EventType[()] | None = None,
|
|
547
|
-
on_context_menu: EventType[()] | None = None,
|
|
548
|
-
on_double_click: EventType[()] | None = None,
|
|
547
|
+
on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
548
|
+
on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
549
|
+
on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
549
550
|
on_focus: EventType[()] | None = None,
|
|
550
551
|
on_mount: EventType[()] | None = None,
|
|
551
552
|
on_mouse_down: EventType[()] | None = None,
|
|
@@ -556,6 +557,7 @@ class VStack(Stack):
|
|
|
556
557
|
on_mouse_over: EventType[()] | None = None,
|
|
557
558
|
on_mouse_up: EventType[()] | None = None,
|
|
558
559
|
on_scroll: EventType[()] | None = None,
|
|
560
|
+
on_scroll_end: EventType[()] | None = None,
|
|
559
561
|
on_unmount: EventType[()] | None = None,
|
|
560
562
|
**props,
|
|
561
563
|
) -> VStack:
|
|
@@ -836,9 +838,9 @@ class HStack(Stack):
|
|
|
836
838
|
autofocus: bool | None = None,
|
|
837
839
|
custom_attrs: dict[str, Var | Any] | None = None,
|
|
838
840
|
on_blur: EventType[()] | None = None,
|
|
839
|
-
on_click: EventType[()] | None = None,
|
|
840
|
-
on_context_menu: EventType[()] | None = None,
|
|
841
|
-
on_double_click: EventType[()] | None = None,
|
|
841
|
+
on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
842
|
+
on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
843
|
+
on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
842
844
|
on_focus: EventType[()] | None = None,
|
|
843
845
|
on_mount: EventType[()] | None = None,
|
|
844
846
|
on_mouse_down: EventType[()] | None = None,
|
|
@@ -849,6 +851,7 @@ class HStack(Stack):
|
|
|
849
851
|
on_mouse_over: EventType[()] | None = None,
|
|
850
852
|
on_mouse_up: EventType[()] | None = None,
|
|
851
853
|
on_scroll: EventType[()] | None = None,
|
|
854
|
+
on_scroll_end: EventType[()] | None = None,
|
|
852
855
|
on_unmount: EventType[()] | None = None,
|
|
853
856
|
**props,
|
|
854
857
|
) -> HStack:
|
|
@@ -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 Blockquote(elements.Blockquote, RadixThemesComponent):
|
|
@@ -283,9 +283,9 @@ class Blockquote(elements.Blockquote, RadixThemesComponent):
|
|
|
283
283
|
autofocus: bool | None = None,
|
|
284
284
|
custom_attrs: dict[str, Var | Any] | None = None,
|
|
285
285
|
on_blur: EventType[()] | None = None,
|
|
286
|
-
on_click: EventType[()] | None = None,
|
|
287
|
-
on_context_menu: EventType[()] | None = None,
|
|
288
|
-
on_double_click: EventType[()] | None = None,
|
|
286
|
+
on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
287
|
+
on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
288
|
+
on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
289
289
|
on_focus: EventType[()] | None = None,
|
|
290
290
|
on_mount: EventType[()] | None = None,
|
|
291
291
|
on_mouse_down: EventType[()] | None = None,
|
|
@@ -296,6 +296,7 @@ class Blockquote(elements.Blockquote, RadixThemesComponent):
|
|
|
296
296
|
on_mouse_over: EventType[()] | None = None,
|
|
297
297
|
on_mouse_up: EventType[()] | None = None,
|
|
298
298
|
on_scroll: EventType[()] | None = None,
|
|
299
|
+
on_scroll_end: EventType[()] | None = None,
|
|
299
300
|
on_unmount: EventType[()] | None = None,
|
|
300
301
|
**props,
|
|
301
302
|
) -> Blockquote:
|
|
@@ -10,7 +10,7 @@ from reflex.components.core.breakpoints import Breakpoints
|
|
|
10
10
|
from reflex.components.el import elements
|
|
11
11
|
from reflex.components.markdown.markdown import MarkdownComponentMap
|
|
12
12
|
from reflex.components.radix.themes.base import RadixThemesComponent
|
|
13
|
-
from reflex.event import EventType
|
|
13
|
+
from reflex.event import EventType, PointerEventInfo
|
|
14
14
|
from reflex.vars.base import Var
|
|
15
15
|
|
|
16
16
|
class Code(elements.Code, RadixThemesComponent, MarkdownComponentMap):
|
|
@@ -286,9 +286,9 @@ class Code(elements.Code, RadixThemesComponent, MarkdownComponentMap):
|
|
|
286
286
|
autofocus: bool | None = None,
|
|
287
287
|
custom_attrs: dict[str, Var | Any] | None = None,
|
|
288
288
|
on_blur: EventType[()] | None = None,
|
|
289
|
-
on_click: EventType[()] | None = None,
|
|
290
|
-
on_context_menu: EventType[()] | None = None,
|
|
291
|
-
on_double_click: EventType[()] | None = None,
|
|
289
|
+
on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
290
|
+
on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
291
|
+
on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
292
292
|
on_focus: EventType[()] | None = None,
|
|
293
293
|
on_mount: EventType[()] | None = None,
|
|
294
294
|
on_mouse_down: EventType[()] | None = None,
|
|
@@ -299,6 +299,7 @@ class Code(elements.Code, RadixThemesComponent, MarkdownComponentMap):
|
|
|
299
299
|
on_mouse_over: EventType[()] | None = None,
|
|
300
300
|
on_mouse_up: EventType[()] | None = None,
|
|
301
301
|
on_scroll: EventType[()] | None = None,
|
|
302
|
+
on_scroll_end: EventType[()] | None = None,
|
|
302
303
|
on_unmount: EventType[()] | None = None,
|
|
303
304
|
**props,
|
|
304
305
|
) -> Code:
|
|
@@ -10,7 +10,7 @@ from reflex.components.core.breakpoints import Breakpoints
|
|
|
10
10
|
from reflex.components.el import elements
|
|
11
11
|
from reflex.components.markdown.markdown import MarkdownComponentMap
|
|
12
12
|
from reflex.components.radix.themes.base import RadixThemesComponent
|
|
13
|
-
from reflex.event import EventType
|
|
13
|
+
from reflex.event import EventType, PointerEventInfo
|
|
14
14
|
from reflex.vars.base import Var
|
|
15
15
|
|
|
16
16
|
class Heading(elements.H1, RadixThemesComponent, MarkdownComponentMap):
|
|
@@ -299,9 +299,9 @@ class Heading(elements.H1, RadixThemesComponent, MarkdownComponentMap):
|
|
|
299
299
|
autofocus: bool | None = None,
|
|
300
300
|
custom_attrs: dict[str, Var | Any] | None = None,
|
|
301
301
|
on_blur: EventType[()] | None = None,
|
|
302
|
-
on_click: EventType[()] | None = None,
|
|
303
|
-
on_context_menu: EventType[()] | None = None,
|
|
304
|
-
on_double_click: EventType[()] | None = None,
|
|
302
|
+
on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
303
|
+
on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
304
|
+
on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
305
305
|
on_focus: EventType[()] | None = None,
|
|
306
306
|
on_mount: EventType[()] | None = None,
|
|
307
307
|
on_mouse_down: EventType[()] | None = None,
|
|
@@ -312,6 +312,7 @@ class Heading(elements.H1, RadixThemesComponent, MarkdownComponentMap):
|
|
|
312
312
|
on_mouse_over: EventType[()] | None = None,
|
|
313
313
|
on_mouse_up: EventType[()] | None = None,
|
|
314
314
|
on_scroll: EventType[()] | None = None,
|
|
315
|
+
on_scroll_end: EventType[()] | None = None,
|
|
315
316
|
on_unmount: EventType[()] | None = None,
|
|
316
317
|
**props,
|
|
317
318
|
) -> Heading:
|
|
@@ -13,16 +13,46 @@ from reflex.components.core.colors import color
|
|
|
13
13
|
from reflex.components.core.cond import cond
|
|
14
14
|
from reflex.components.el.elements.inline import A
|
|
15
15
|
from reflex.components.markdown.markdown import MarkdownComponentMap
|
|
16
|
-
from reflex.components.next.link import NextLink
|
|
17
16
|
from reflex.components.radix.themes.base import LiteralAccentColor, RadixThemesComponent
|
|
18
|
-
from reflex.utils.imports import ImportDict
|
|
17
|
+
from reflex.utils.imports import ImportDict, ImportVar
|
|
19
18
|
from reflex.vars.base import Var
|
|
20
19
|
|
|
21
20
|
from .base import LiteralTextSize, LiteralTextTrim, LiteralTextWeight
|
|
22
21
|
|
|
23
22
|
LiteralLinkUnderline = Literal["auto", "hover", "always", "none"]
|
|
24
23
|
|
|
25
|
-
|
|
24
|
+
LiteralLinkDiscover = Literal["none", "render"]
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class ReactRouterLink(A):
|
|
28
|
+
"""Links are accessible elements used primarily for navigation. This component is styled to resemble a hyperlink and semantically renders an <a>."""
|
|
29
|
+
|
|
30
|
+
library = "react-router"
|
|
31
|
+
|
|
32
|
+
tag = "Link"
|
|
33
|
+
|
|
34
|
+
alias = "ReactRouterLink"
|
|
35
|
+
|
|
36
|
+
# The page to link to.
|
|
37
|
+
to: Var[str]
|
|
38
|
+
|
|
39
|
+
# Replaces the current entry in the history stack instead of pushing a new one onto it.
|
|
40
|
+
replace: Var[bool]
|
|
41
|
+
|
|
42
|
+
# 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>).
|
|
43
|
+
reload_document: Var[bool]
|
|
44
|
+
|
|
45
|
+
# 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.
|
|
46
|
+
prevent_scroll_reset: Var[bool]
|
|
47
|
+
|
|
48
|
+
# Defines the link discovery behavior
|
|
49
|
+
discover: Var[LiteralLinkDiscover]
|
|
50
|
+
|
|
51
|
+
# Enables a View Transition for this navigation.
|
|
52
|
+
view_transition: Var[bool]
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
_KNOWN_REACT_ROUTER_LINK_PROPS = frozenset(ReactRouterLink.get_props())
|
|
26
56
|
|
|
27
57
|
|
|
28
58
|
class Link(RadixThemesComponent, A, MemoizationLeaf, MarkdownComponentMap):
|
|
@@ -60,7 +90,9 @@ class Link(RadixThemesComponent, A, MemoizationLeaf, MarkdownComponentMap):
|
|
|
60
90
|
Returns:
|
|
61
91
|
The import dict.
|
|
62
92
|
"""
|
|
63
|
-
return
|
|
93
|
+
return {
|
|
94
|
+
"react-router": [ImportVar(tag="Link", alias="ReactRouterLink")],
|
|
95
|
+
}
|
|
64
96
|
|
|
65
97
|
@classmethod
|
|
66
98
|
def create(cls, *children, **props) -> Component:
|
|
@@ -90,16 +122,19 @@ class Link(RadixThemesComponent, A, MemoizationLeaf, MarkdownComponentMap):
|
|
|
90
122
|
raise ValueError(msg)
|
|
91
123
|
|
|
92
124
|
if "as_child" not in props:
|
|
93
|
-
# Extract props for the
|
|
94
|
-
|
|
95
|
-
next_link_props = {}
|
|
125
|
+
# Extract props for the ReactRouterLink, the rest go to the Link/A element.
|
|
126
|
+
react_router_link_props = {}
|
|
96
127
|
for prop in props.copy():
|
|
97
|
-
if prop in
|
|
98
|
-
|
|
128
|
+
if prop in _KNOWN_REACT_ROUTER_LINK_PROPS:
|
|
129
|
+
react_router_link_props[prop] = props.pop(prop)
|
|
130
|
+
|
|
131
|
+
react_router_link_props["to"] = react_router_link_props.pop(
|
|
132
|
+
"href", href
|
|
133
|
+
)
|
|
99
134
|
|
|
100
|
-
# If user does not use `as_child`, by default we render using
|
|
135
|
+
# If user does not use `as_child`, by default we render using react_router_link to avoid page refresh during internal navigation
|
|
101
136
|
return super().create(
|
|
102
|
-
|
|
137
|
+
ReactRouterLink.create(*children, **react_router_link_props),
|
|
103
138
|
as_child=True,
|
|
104
139
|
**props,
|
|
105
140
|
)
|