diff --git a/reflex/components/radix/themes/base.py b/reflex/components/radix/themes/base.py index 2b4af6f83..590dd5089 100644 --- a/reflex/components/radix/themes/base.py +++ b/reflex/components/radix/themes/base.py @@ -149,13 +149,18 @@ class Theme(RadixThemesComponent): @classmethod def create( - cls, *children, color_mode: LiteralAppearance | None = None, **props + cls, + *children, + color_mode: LiteralAppearance | None = None, + theme_panel: bool = False, + **props, ) -> Component: """Create a new Radix Theme specification. Args: *children: Child components. - color_mode: map to appearance prop. + color_mode: Map to appearance prop. + theme_panel: Whether to include a panel for editing the theme. **props: Component properties. Returns: @@ -163,6 +168,8 @@ class Theme(RadixThemesComponent): """ if color_mode is not None: props["appearance"] = color_mode + if theme_panel: + children = [ThemePanel.create(), *children] return super().create(*children, **props) def _get_imports(self) -> imports.ImportDict: diff --git a/reflex/components/radix/themes/base.pyi b/reflex/components/radix/themes/base.pyi index 0ae5812e5..2d1fdd438 100644 --- a/reflex/components/radix/themes/base.pyi +++ b/reflex/components/radix/themes/base.pyi @@ -265,6 +265,7 @@ class Theme(RadixThemesComponent): cls, *children, color_mode: Optional[LiteralAppearance | None] = None, + theme_panel: Optional[bool] = False, has_background: Optional[Union[Var[bool], bool]] = None, appearance: Optional[ Union[ @@ -412,7 +413,8 @@ class Theme(RadixThemesComponent): Args: *children: Child components. - color_mode: map to appearance prop. + color_mode: Map to appearance prop. + theme_panel: Whether to include a panel for editing the theme. has_background: Whether to apply the themes background color to the theme node. Defaults to True. appearance: Override light or dark mode theme: "inherit" | "light" | "dark". Defaults to "inherit". accent_color: The color used for default buttons, typography, backgrounds, etc