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
|
@@ -3,13 +3,12 @@
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
5
|
import dataclasses
|
|
6
|
-
import typing
|
|
7
6
|
from typing import ClassVar, Literal
|
|
8
7
|
|
|
9
8
|
from reflex.components.component import Component, ComponentNamespace
|
|
10
9
|
from reflex.components.core.cond import color_mode_cond
|
|
11
10
|
from reflex.components.lucide.icon import Icon
|
|
12
|
-
from reflex.components.markdown.markdown import
|
|
11
|
+
from reflex.components.markdown.markdown import MarkdownComponentMap
|
|
13
12
|
from reflex.components.radix.themes.components.button import Button
|
|
14
13
|
from reflex.components.radix.themes.layout.box import Box
|
|
15
14
|
from reflex.constants.colors import Color
|
|
@@ -315,7 +314,7 @@ def construct_theme_var(theme: str) -> Var[Theme]:
|
|
|
315
314
|
theme,
|
|
316
315
|
_var_data=VarData(
|
|
317
316
|
imports={
|
|
318
|
-
f"react-syntax-highlighter/dist/
|
|
317
|
+
f"react-syntax-highlighter/dist/esm/styles/prism/{format.to_kebab_case(theme)}": [
|
|
319
318
|
ImportVar(tag=theme, is_default=True, install=False)
|
|
320
319
|
]
|
|
321
320
|
}
|
|
@@ -502,75 +501,6 @@ class CodeBlock(Component, MarkdownComponentMap):
|
|
|
502
501
|
def _exclude_props(self) -> list[str]:
|
|
503
502
|
return ["can_copy", "copy_button"]
|
|
504
503
|
|
|
505
|
-
@classmethod
|
|
506
|
-
def _get_language_registration_hook(cls, language_var: Var = _LANGUAGE) -> Var:
|
|
507
|
-
"""Get the hook to register the language.
|
|
508
|
-
|
|
509
|
-
Args:
|
|
510
|
-
language_var: The const/literal Var of the language module to import.
|
|
511
|
-
For markdown, uses the default placeholder _LANGUAGE. For direct use,
|
|
512
|
-
a LiteralStringVar should be passed via the language prop.
|
|
513
|
-
|
|
514
|
-
Returns:
|
|
515
|
-
The hook to register the language.
|
|
516
|
-
"""
|
|
517
|
-
language_in_there = Var.create(typing.get_args(LiteralCodeLanguage)).contains(
|
|
518
|
-
language_var
|
|
519
|
-
)
|
|
520
|
-
async_load = f"""
|
|
521
|
-
(async () => {{
|
|
522
|
-
try {{
|
|
523
|
-
const module = await import(`react-syntax-highlighter/dist/cjs/languages/prism/${{{language_var!s}}}`);
|
|
524
|
-
SyntaxHighlighter.registerLanguage({language_var!s}, module.default);
|
|
525
|
-
}} catch (error) {{
|
|
526
|
-
console.error(`Language ${{{language_var!s}}} is not supported for code blocks inside of markdown: `, error);
|
|
527
|
-
}}
|
|
528
|
-
}})();
|
|
529
|
-
"""
|
|
530
|
-
return Var(
|
|
531
|
-
f"""
|
|
532
|
-
if ({language_var!s}) {{
|
|
533
|
-
if (!{language_in_there!s}) {{
|
|
534
|
-
console.warn(`Language \\`${{{language_var!s}}}\\` is not supported for code blocks inside of markdown.`);
|
|
535
|
-
{language_var!s} = '';
|
|
536
|
-
}} else {{
|
|
537
|
-
{async_load!s}
|
|
538
|
-
}}
|
|
539
|
-
}}
|
|
540
|
-
"""
|
|
541
|
-
if not isinstance(language_var, LiteralVar)
|
|
542
|
-
else f"""
|
|
543
|
-
if ({language_var!s}) {{
|
|
544
|
-
{async_load!s}
|
|
545
|
-
}}""",
|
|
546
|
-
_var_data=VarData(
|
|
547
|
-
imports={
|
|
548
|
-
cls.get_fields()["library"].default_value(): [
|
|
549
|
-
ImportVar(tag="PrismAsyncLight", alias="SyntaxHighlighter")
|
|
550
|
-
]
|
|
551
|
-
},
|
|
552
|
-
),
|
|
553
|
-
)
|
|
554
|
-
|
|
555
|
-
@classmethod
|
|
556
|
-
def get_component_map_custom_code(cls) -> Var:
|
|
557
|
-
"""Get the custom code for the component.
|
|
558
|
-
|
|
559
|
-
Returns:
|
|
560
|
-
The custom code for the component.
|
|
561
|
-
"""
|
|
562
|
-
return cls._get_language_registration_hook()
|
|
563
|
-
|
|
564
|
-
def add_hooks(self) -> list[str | Var]:
|
|
565
|
-
"""Add hooks for the component.
|
|
566
|
-
|
|
567
|
-
Returns:
|
|
568
|
-
The hooks for the component.
|
|
569
|
-
"""
|
|
570
|
-
return [
|
|
571
|
-
self._get_language_registration_hook(language_var=self.language),
|
|
572
|
-
]
|
|
573
|
-
|
|
574
504
|
|
|
575
505
|
class CodeblockNamespace(ComponentNamespace):
|
|
576
506
|
"""Namespace for the CodeBlock component."""
|
|
@@ -11,7 +11,7 @@ from reflex.components.component import Component, ComponentNamespace
|
|
|
11
11
|
from reflex.components.core.breakpoints import Breakpoints
|
|
12
12
|
from reflex.components.markdown.markdown import MarkdownComponentMap
|
|
13
13
|
from reflex.constants.colors import Color
|
|
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
|
LiteralCodeLanguage = Literal[
|
|
@@ -942,9 +942,9 @@ class CodeBlock(Component, MarkdownComponentMap):
|
|
|
942
942
|
autofocus: bool | None = None,
|
|
943
943
|
custom_attrs: dict[str, Var | Any] | None = None,
|
|
944
944
|
on_blur: EventType[()] | None = None,
|
|
945
|
-
on_click: EventType[()] | None = None,
|
|
946
|
-
on_context_menu: EventType[()] | None = None,
|
|
947
|
-
on_double_click: EventType[()] | None = None,
|
|
945
|
+
on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
946
|
+
on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
947
|
+
on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
948
948
|
on_focus: EventType[()] | None = None,
|
|
949
949
|
on_mount: EventType[()] | None = None,
|
|
950
950
|
on_mouse_down: EventType[()] | None = None,
|
|
@@ -955,6 +955,7 @@ class CodeBlock(Component, MarkdownComponentMap):
|
|
|
955
955
|
on_mouse_over: EventType[()] | None = None,
|
|
956
956
|
on_mouse_up: EventType[()] | None = None,
|
|
957
957
|
on_scroll: EventType[()] | None = None,
|
|
958
|
+
on_scroll_end: EventType[()] | None = None,
|
|
958
959
|
on_unmount: EventType[()] | None = None,
|
|
959
960
|
**props,
|
|
960
961
|
) -> CodeBlock:
|
|
@@ -986,9 +987,6 @@ class CodeBlock(Component, MarkdownComponentMap):
|
|
|
986
987
|
"""
|
|
987
988
|
|
|
988
989
|
def add_style(self): ...
|
|
989
|
-
@classmethod
|
|
990
|
-
def get_component_map_custom_code(cls) -> Var: ...
|
|
991
|
-
def add_hooks(self) -> list[str | Var]: ...
|
|
992
990
|
|
|
993
991
|
class CodeblockNamespace(ComponentNamespace):
|
|
994
992
|
themes = Theme
|
|
@@ -1582,9 +1580,9 @@ class CodeblockNamespace(ComponentNamespace):
|
|
|
1582
1580
|
autofocus: bool | None = None,
|
|
1583
1581
|
custom_attrs: dict[str, Var | Any] | None = None,
|
|
1584
1582
|
on_blur: EventType[()] | None = None,
|
|
1585
|
-
on_click: EventType[()] | None = None,
|
|
1586
|
-
on_context_menu: EventType[()] | None = None,
|
|
1587
|
-
on_double_click: EventType[()] | None = None,
|
|
1583
|
+
on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
1584
|
+
on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
1585
|
+
on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
1588
1586
|
on_focus: EventType[()] | None = None,
|
|
1589
1587
|
on_mount: EventType[()] | None = None,
|
|
1590
1588
|
on_mouse_down: EventType[()] | None = None,
|
|
@@ -1595,6 +1593,7 @@ class CodeblockNamespace(ComponentNamespace):
|
|
|
1595
1593
|
on_mouse_over: EventType[()] | None = None,
|
|
1596
1594
|
on_mouse_up: EventType[()] | None = None,
|
|
1597
1595
|
on_scroll: EventType[()] | None = None,
|
|
1596
|
+
on_scroll_end: EventType[()] | None = None,
|
|
1598
1597
|
on_unmount: EventType[()] | None = None,
|
|
1599
1598
|
**props,
|
|
1600
1599
|
) -> CodeBlock:
|
|
@@ -3,14 +3,14 @@
|
|
|
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 collections.abc import Mapping, Sequence
|
|
7
8
|
from enum import Enum
|
|
8
9
|
from typing import Any, Literal, TypedDict, overload
|
|
9
10
|
|
|
10
|
-
from reflex.base import Base
|
|
11
11
|
from reflex.components.component import NoSSRComponent
|
|
12
12
|
from reflex.components.core.breakpoints import Breakpoints
|
|
13
|
-
from reflex.event import EventType
|
|
13
|
+
from reflex.event import EventType, PointerEventInfo
|
|
14
14
|
from reflex.utils.imports import ImportDict
|
|
15
15
|
from reflex.utils.serializers import serializer
|
|
16
16
|
from reflex.vars.base import Var
|
|
@@ -43,7 +43,8 @@ class GridColumnIcons(Enum):
|
|
|
43
43
|
Uri = "uri"
|
|
44
44
|
VideoUri = "video_uri"
|
|
45
45
|
|
|
46
|
-
|
|
46
|
+
@dataclasses.dataclass
|
|
47
|
+
class DataEditorThemeBase:
|
|
47
48
|
accent_color: str | None
|
|
48
49
|
accent_fg: str | None
|
|
49
50
|
accent_light: str | None
|
|
@@ -77,6 +78,9 @@ class DataEditorTheme(Base):
|
|
|
77
78
|
text_light: str | None
|
|
78
79
|
text_medium: str | None
|
|
79
80
|
|
|
81
|
+
@dataclasses.dataclass(init=False)
|
|
82
|
+
class DataEditorTheme(DataEditorThemeBase): ...
|
|
83
|
+
|
|
80
84
|
class Bounds(TypedDict):
|
|
81
85
|
x: int
|
|
82
86
|
y: int
|
|
@@ -182,11 +186,11 @@ class DataEditor(NoSSRComponent):
|
|
|
182
186
|
on_cell_clicked: EventType[()] | EventType[tuple[int, int]] | None = None,
|
|
183
187
|
on_cell_context_menu: EventType[()] | EventType[tuple[int, int]] | None = None,
|
|
184
188
|
on_cell_edited: EventType[()] | EventType[tuple[int, int]] | EventType[tuple[int, int], GridCell] | None = None,
|
|
185
|
-
on_click: EventType[()] | None = None,
|
|
189
|
+
on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
186
190
|
on_column_resize: EventType[()] | EventType[GridColumn] | EventType[GridColumn, int] | None = None,
|
|
187
|
-
on_context_menu: EventType[()] | None = None,
|
|
191
|
+
on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
188
192
|
on_delete: EventType[()] | EventType[GridSelection] | None = None,
|
|
189
|
-
on_double_click: EventType[()] | None = None,
|
|
193
|
+
on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
190
194
|
on_finished_editing: EventType[()] | EventType[GridCell | None] | EventType[GridCell | None, tuple[int, int]] | None = None,
|
|
191
195
|
on_focus: EventType[()] | None = None,
|
|
192
196
|
on_group_header_clicked: EventType[()] | EventType[tuple[int, int]] | EventType[tuple[int, int], GridCell] | None = None,
|
|
@@ -206,6 +210,7 @@ class DataEditor(NoSSRComponent):
|
|
|
206
210
|
on_mouse_up: EventType[()] | None = None,
|
|
207
211
|
on_row_appended: EventType[()] | None = None,
|
|
208
212
|
on_scroll: EventType[()] | None = None,
|
|
213
|
+
on_scroll_end: EventType[()] | None = None,
|
|
209
214
|
on_selection_cleared: EventType[()] | None = None,
|
|
210
215
|
on_unmount: EventType[()] | None = None,
|
|
211
216
|
**props,
|
|
@@ -11,7 +11,7 @@ from reflex.components.component import Component, ComponentNamespace
|
|
|
11
11
|
from reflex.components.core.breakpoints import Breakpoints
|
|
12
12
|
from reflex.components.markdown.markdown import MarkdownComponentMap
|
|
13
13
|
from reflex.components.props import NoExtrasAllowedProps
|
|
14
|
-
from reflex.event import EventType
|
|
14
|
+
from reflex.event import EventType, PointerEventInfo
|
|
15
15
|
from reflex.style import Style
|
|
16
16
|
from reflex.vars.base import Var
|
|
17
17
|
from reflex.vars.function import FunctionStringVar
|
|
@@ -924,9 +924,9 @@ class ShikiCodeBlock(Component, MarkdownComponentMap):
|
|
|
924
924
|
autofocus: bool | None = None,
|
|
925
925
|
custom_attrs: dict[str, Var | Any] | None = None,
|
|
926
926
|
on_blur: EventType[()] | None = None,
|
|
927
|
-
on_click: EventType[()] | None = None,
|
|
928
|
-
on_context_menu: EventType[()] | None = None,
|
|
929
|
-
on_double_click: EventType[()] | None = None,
|
|
927
|
+
on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
928
|
+
on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
929
|
+
on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
930
930
|
on_focus: EventType[()] | None = None,
|
|
931
931
|
on_mount: EventType[()] | None = None,
|
|
932
932
|
on_mouse_down: EventType[()] | None = None,
|
|
@@ -937,6 +937,7 @@ class ShikiCodeBlock(Component, MarkdownComponentMap):
|
|
|
937
937
|
on_mouse_over: EventType[()] | None = None,
|
|
938
938
|
on_mouse_up: EventType[()] | None = None,
|
|
939
939
|
on_scroll: EventType[()] | None = None,
|
|
940
|
+
on_scroll_end: EventType[()] | None = None,
|
|
940
941
|
on_unmount: EventType[()] | None = None,
|
|
941
942
|
**props,
|
|
942
943
|
) -> ShikiCodeBlock:
|
|
@@ -1542,9 +1543,9 @@ class ShikiHighLevelCodeBlock(ShikiCodeBlock):
|
|
|
1542
1543
|
autofocus: bool | None = None,
|
|
1543
1544
|
custom_attrs: dict[str, Var | Any] | None = None,
|
|
1544
1545
|
on_blur: EventType[()] | None = None,
|
|
1545
|
-
on_click: EventType[()] | None = None,
|
|
1546
|
-
on_context_menu: EventType[()] | None = None,
|
|
1547
|
-
on_double_click: EventType[()] | None = None,
|
|
1546
|
+
on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
1547
|
+
on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
1548
|
+
on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
1548
1549
|
on_focus: EventType[()] | None = None,
|
|
1549
1550
|
on_mount: EventType[()] | None = None,
|
|
1550
1551
|
on_mouse_down: EventType[()] | None = None,
|
|
@@ -1555,6 +1556,7 @@ class ShikiHighLevelCodeBlock(ShikiCodeBlock):
|
|
|
1555
1556
|
on_mouse_over: EventType[()] | None = None,
|
|
1556
1557
|
on_mouse_up: EventType[()] | None = None,
|
|
1557
1558
|
on_scroll: EventType[()] | None = None,
|
|
1559
|
+
on_scroll_end: EventType[()] | None = None,
|
|
1558
1560
|
on_unmount: EventType[()] | None = None,
|
|
1559
1561
|
**props,
|
|
1560
1562
|
) -> ShikiHighLevelCodeBlock:
|
|
@@ -2163,9 +2165,9 @@ class CodeblockNamespace(ComponentNamespace):
|
|
|
2163
2165
|
autofocus: bool | None = None,
|
|
2164
2166
|
custom_attrs: dict[str, Var | Any] | None = None,
|
|
2165
2167
|
on_blur: EventType[()] | None = None,
|
|
2166
|
-
on_click: EventType[()] | None = None,
|
|
2167
|
-
on_context_menu: EventType[()] | None = None,
|
|
2168
|
-
on_double_click: EventType[()] | None = None,
|
|
2168
|
+
on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
2169
|
+
on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
2170
|
+
on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
2169
2171
|
on_focus: EventType[()] | None = None,
|
|
2170
2172
|
on_mount: EventType[()] | None = None,
|
|
2171
2173
|
on_mouse_down: EventType[()] | None = None,
|
|
@@ -2176,6 +2178,7 @@ class CodeblockNamespace(ComponentNamespace):
|
|
|
2176
2178
|
on_mouse_over: EventType[()] | None = None,
|
|
2177
2179
|
on_mouse_up: EventType[()] | None = None,
|
|
2178
2180
|
on_scroll: EventType[()] | None = None,
|
|
2181
|
+
on_scroll_end: EventType[()] | None = None,
|
|
2179
2182
|
on_unmount: EventType[()] | None = None,
|
|
2180
2183
|
**props,
|
|
2181
2184
|
) -> ShikiHighLevelCodeBlock:
|
reflex/components/dynamic.py
CHANGED
|
@@ -26,15 +26,14 @@ def get_cdn_url(lib: str) -> str:
|
|
|
26
26
|
return f"https://cdn.jsdelivr.net/npm/{lib}" + "/+esm"
|
|
27
27
|
|
|
28
28
|
|
|
29
|
-
bundled_libraries =
|
|
29
|
+
bundled_libraries = [
|
|
30
30
|
"react",
|
|
31
31
|
"@radix-ui/themes",
|
|
32
32
|
"@emotion/react",
|
|
33
|
-
"next/link",
|
|
34
33
|
f"$/{constants.Dirs.UTILS}/context",
|
|
35
34
|
f"$/{constants.Dirs.UTILS}/state",
|
|
36
35
|
f"$/{constants.Dirs.UTILS}/components",
|
|
37
|
-
|
|
36
|
+
]
|
|
38
37
|
|
|
39
38
|
|
|
40
39
|
def bundle_library(component: Union["Component", str]):
|
|
@@ -47,12 +46,12 @@ def bundle_library(component: Union["Component", str]):
|
|
|
47
46
|
DynamicComponentMissingLibraryError: Raised when a dynamic component is missing a library.
|
|
48
47
|
"""
|
|
49
48
|
if isinstance(component, str):
|
|
50
|
-
bundled_libraries.
|
|
49
|
+
bundled_libraries.append(component)
|
|
51
50
|
return
|
|
52
51
|
if component.library is None:
|
|
53
52
|
msg = "Component must have a library to bundle."
|
|
54
53
|
raise DynamicComponentMissingLibraryError(msg)
|
|
55
|
-
bundled_libraries.
|
|
54
|
+
bundled_libraries.append(format_library_name(component.library))
|
|
56
55
|
|
|
57
56
|
|
|
58
57
|
def load_dynamic_serializer():
|
|
@@ -91,6 +90,7 @@ def load_dynamic_serializer():
|
|
|
91
90
|
tag_name="MySSRComponent",
|
|
92
91
|
memo_trigger_hooks=[],
|
|
93
92
|
component=component,
|
|
93
|
+
export=True,
|
|
94
94
|
)
|
|
95
95
|
] = None
|
|
96
96
|
|
reflex/components/el/element.pyi
CHANGED
|
@@ -8,7 +8,7 @@ from typing import Any, overload
|
|
|
8
8
|
|
|
9
9
|
from reflex.components.component import Component
|
|
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 Element(Component):
|
|
@@ -29,9 +29,9 @@ class Element(Component):
|
|
|
29
29
|
autofocus: bool | None = None,
|
|
30
30
|
custom_attrs: dict[str, Var | Any] | None = None,
|
|
31
31
|
on_blur: EventType[()] | None = None,
|
|
32
|
-
on_click: EventType[()] | None = None,
|
|
33
|
-
on_context_menu: EventType[()] | None = None,
|
|
34
|
-
on_double_click: EventType[()] | None = None,
|
|
32
|
+
on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
33
|
+
on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
34
|
+
on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
35
35
|
on_focus: EventType[()] | None = None,
|
|
36
36
|
on_mount: EventType[()] | None = None,
|
|
37
37
|
on_mouse_down: EventType[()] | None = None,
|
|
@@ -42,6 +42,7 @@ class Element(Component):
|
|
|
42
42
|
on_mouse_over: EventType[()] | None = None,
|
|
43
43
|
on_mouse_up: EventType[()] | None = None,
|
|
44
44
|
on_scroll: EventType[()] | None = None,
|
|
45
|
+
on_scroll_end: EventType[()] | None = None,
|
|
45
46
|
on_unmount: EventType[()] | None = None,
|
|
46
47
|
**props,
|
|
47
48
|
) -> Element:
|
|
@@ -8,7 +8,7 @@ from typing import Any, Literal, overload
|
|
|
8
8
|
|
|
9
9
|
from reflex.components.core.breakpoints import Breakpoints
|
|
10
10
|
from reflex.components.el.element import Element
|
|
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
|
AutoCapitalize = Literal["off", "none", "on", "sentences", "words", "characters"]
|
|
@@ -285,9 +285,9 @@ class BaseHTML(Element):
|
|
|
285
285
|
autofocus: bool | None = None,
|
|
286
286
|
custom_attrs: dict[str, Var | Any] | None = None,
|
|
287
287
|
on_blur: EventType[()] | None = None,
|
|
288
|
-
on_click: EventType[()] | None = None,
|
|
289
|
-
on_context_menu: EventType[()] | None = None,
|
|
290
|
-
on_double_click: EventType[()] | None = None,
|
|
288
|
+
on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
289
|
+
on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
290
|
+
on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
291
291
|
on_focus: EventType[()] | None = None,
|
|
292
292
|
on_mount: EventType[()] | None = None,
|
|
293
293
|
on_mouse_down: EventType[()] | None = None,
|
|
@@ -298,6 +298,7 @@ class BaseHTML(Element):
|
|
|
298
298
|
on_mouse_over: EventType[()] | None = None,
|
|
299
299
|
on_mouse_up: EventType[()] | None = None,
|
|
300
300
|
on_scroll: EventType[()] | None = None,
|
|
301
|
+
on_scroll_end: EventType[()] | None = None,
|
|
301
302
|
on_unmount: EventType[()] | None = None,
|
|
302
303
|
**props,
|
|
303
304
|
) -> BaseHTML:
|