From 3a1e5598b288b26a081077b55b37fc172e8538e7 Mon Sep 17 00:00:00 2001 From: Chase Sterling Date: Tue, 2 Jun 2026 13:40:14 -0400 Subject: [PATCH] Add support for viewTransitionSelector dataline for datastar 1.0.2 --- src/datastar_py/consts.py | 1 + src/datastar_py/sse.py | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/src/datastar_py/consts.py b/src/datastar_py/consts.py index b41df8f..0ba2598 100644 --- a/src/datastar_py/consts.py +++ b/src/datastar_py/consts.py @@ -81,6 +81,7 @@ class EventType(StrEnum): NAMESPACE_DATALINE_LITERAL = "namespace" ELEMENTS_DATALINE_LITERAL = "elements" USE_VIEW_TRANSITION_DATALINE_LITERAL = "useViewTransition" +VIEW_TRANSITION_SELECTOR_DATALINE_LITERAL = "viewTransitionSelector" SIGNALS_DATALINE_LITERAL = "signals" ONLY_IF_MISSING_DATALINE_LITERAL = "onlyIfMissing" # endregion Dataline literals diff --git a/src/datastar_py/sse.py b/src/datastar_py/sse.py index c433192..94124c2 100644 --- a/src/datastar_py/sse.py +++ b/src/datastar_py/sse.py @@ -68,6 +68,7 @@ def patch_elements( selector: str, mode: Literal[consts.ElementPatchMode.REMOVE], use_view_transition: bool | None = None, + view_transition_selector: str | None = None, namespace: consts.ElementPatchNamespace | None = None, event_id: str | None = None, retry_duration: int | None = None, @@ -80,6 +81,7 @@ def patch_elements( selector: str | None = None, mode: consts.ElementPatchMode | None = None, use_view_transition: bool | None = None, + view_transition_selector: str | None = None, namespace: consts.ElementPatchNamespace | None = None, event_id: str | None = None, retry_duration: int | None = None, @@ -91,6 +93,7 @@ def patch_elements( # noqa: PLR0913 too many arguments selector: str | None = None, mode: consts.ElementPatchMode | None = None, use_view_transition: bool | None = None, + view_transition_selector: str | None = None, namespace: consts.ElementPatchNamespace | None = None, event_id: str | None = None, retry_duration: int | None = None, @@ -109,6 +112,10 @@ def patch_elements( # noqa: PLR0913 too many arguments data_lines.append( f"{consts.USE_VIEW_TRANSITION_DATALINE_LITERAL} {_js_bool(use_view_transition)}" ) + if view_transition_selector: + data_lines.append( + f"{consts.VIEW_TRANSITION_SELECTOR_DATALINE_LITERAL} {view_transition_selector}" + ) if namespace and namespace != consts.ElementPatchNamespace.HTML: data_lines.append(f"{consts.NAMESPACE_DATALINE_LITERAL} {namespace}")