precommit

This commit is contained in:
Elijah 2024-10-16 15:47:03 +00:00
parent 665179309e
commit a18a5b021d
3 changed files with 29 additions and 13 deletions

View File

@ -670,10 +670,10 @@ class ShikiHighLevelCodeBlock(ShikiCodeBlock):
show_line_numbers: Var[bool] show_line_numbers: Var[bool]
# Whether a copy button should appear. # Whether a copy button should appear.
can_copy: Var[bool] = False can_copy: Var[bool] = Var.create(False)
# copy_button: A custom copy button to override the default one. # copy_button: A custom copy button to override the default one.
copy_button: Var[Optional[Union[Component | bool]]] = None copy_button: Var[Optional[Union[Component, bool]]] = Var.create(None)
@classmethod @classmethod
def create( def create(

View File

@ -309,6 +309,7 @@ LiteralCodeTheme = Literal[
"nord", "nord",
"one-dark-pro", "one-dark-pro",
"one-light", "one-light",
"plain",
"plastic", "plastic",
"poimandres", "poimandres",
"red", "red",
@ -815,6 +816,7 @@ class ShikiCodeBlock(Component):
"nord", "nord",
"one-dark-pro", "one-dark-pro",
"one-light", "one-light",
"plain",
"plastic", "plastic",
"poimandres", "poimandres",
"red", "red",
@ -869,6 +871,7 @@ class ShikiCodeBlock(Component):
"nord", "nord",
"one-dark-pro", "one-dark-pro",
"one-light", "one-light",
"plain",
"plastic", "plastic",
"poimandres", "poimandres",
"red", "red",
@ -981,10 +984,12 @@ class ShikiHighLevelCodeBlock(ShikiCodeBlock):
def create( # type: ignore def create( # type: ignore
cls, cls,
*children, *children,
can_copy: Optional[bool] = False,
copy_button: Optional[Union[Component, bool]] = None,
use_transformers: Optional[Union[Var[bool], bool]] = None, use_transformers: Optional[Union[Var[bool], bool]] = None,
show_line_numbers: Optional[Union[Var[bool], bool]] = None, show_line_numbers: Optional[Union[Var[bool], bool]] = None,
can_copy: Optional[Union[Var[bool], bool]] = None,
copy_button: Optional[
Union[Component, Var[Optional[Union[Component, bool]]], bool]
] = None,
language: Optional[ language: Optional[
Union[ Union[
Literal[ Literal[
@ -1456,6 +1461,7 @@ class ShikiHighLevelCodeBlock(ShikiCodeBlock):
"nord", "nord",
"one-dark-pro", "one-dark-pro",
"one-light", "one-light",
"plain",
"plastic", "plastic",
"poimandres", "poimandres",
"red", "red",
@ -1510,6 +1516,7 @@ class ShikiHighLevelCodeBlock(ShikiCodeBlock):
"nord", "nord",
"one-dark-pro", "one-dark-pro",
"one-light", "one-light",
"plain",
"plastic", "plastic",
"poimandres", "poimandres",
"red", "red",
@ -1592,10 +1599,10 @@ class ShikiHighLevelCodeBlock(ShikiCodeBlock):
Args: Args:
*children: The children of the component. *children: The children of the component.
can_copy: Whether a copy button should appear.
copy_button: A custom copy button to override the default one.
use_transformers: If this is enabled, the default transformers(shikijs transformer) will be used. use_transformers: If this is enabled, the default transformers(shikijs transformer) will be used.
show_line_numbers: If this is enabled line numbers will be shown next to the code block. show_line_numbers: If this is enabled line numbers will be shown next to the code block.
can_copy: Whether a copy button should appear.
copy_button: copy_button: A custom copy button to override the default one.
language: The language to use. language: The language to use.
theme: The theme to use ("light" or "dark"). theme: The theme to use ("light" or "dark").
themes: The set of themes to use for different modes. themes: The set of themes to use for different modes.
@ -1625,10 +1632,12 @@ class CodeblockNamespace(ComponentNamespace):
@staticmethod @staticmethod
def __call__( def __call__(
*children, *children,
can_copy: Optional[bool] = False,
copy_button: Optional[Union[Component, bool]] = None,
use_transformers: Optional[Union[Var[bool], bool]] = None, use_transformers: Optional[Union[Var[bool], bool]] = None,
show_line_numbers: Optional[Union[Var[bool], bool]] = None, show_line_numbers: Optional[Union[Var[bool], bool]] = None,
can_copy: Optional[Union[Var[bool], bool]] = None,
copy_button: Optional[
Union[Component, Var[Optional[Union[Component, bool]]], bool]
] = None,
language: Optional[ language: Optional[
Union[ Union[
Literal[ Literal[
@ -2100,6 +2109,7 @@ class CodeblockNamespace(ComponentNamespace):
"nord", "nord",
"one-dark-pro", "one-dark-pro",
"one-light", "one-light",
"plain",
"plastic", "plastic",
"poimandres", "poimandres",
"red", "red",
@ -2154,6 +2164,7 @@ class CodeblockNamespace(ComponentNamespace):
"nord", "nord",
"one-dark-pro", "one-dark-pro",
"one-light", "one-light",
"plain",
"plastic", "plastic",
"poimandres", "poimandres",
"red", "red",
@ -2236,10 +2247,10 @@ class CodeblockNamespace(ComponentNamespace):
Args: Args:
*children: The children of the component. *children: The children of the component.
can_copy: Whether a copy button should appear.
copy_button: A custom copy button to override the default one.
use_transformers: If this is enabled, the default transformers(shikijs transformer) will be used. use_transformers: If this is enabled, the default transformers(shikijs transformer) will be used.
show_line_numbers: If this is enabled line numbers will be shown next to the code block. show_line_numbers: If this is enabled line numbers will be shown next to the code block.
can_copy: Whether a copy button should appear.
copy_button: copy_button: A custom copy button to override the default one.
language: The language to use. language: The language to use.
theme: The theme to use ("light" or "dark"). theme: The theme to use ("light" or "dark").
themes: The set of themes to use for different modes. themes: The set of themes to use for different modes.

View File

@ -20,9 +20,8 @@ from reflex.components.tags.tag import Tag
from reflex.utils import types from reflex.utils import types
from reflex.utils.imports import ImportDict, ImportVar from reflex.utils.imports import ImportDict, ImportVar
from reflex.vars.base import LiteralVar, Var from reflex.vars.base import LiteralVar, Var
from reflex.vars.number import ternary_operation
from reflex.vars.function import ARRAY_ISARRAY from reflex.vars.function import ARRAY_ISARRAY
from reflex.vars.number import ternary_operation
# Special vars used in the component map. # Special vars used in the component map.
_CHILDREN = Var(_js_expr="children", _var_type=str) _CHILDREN = Var(_js_expr="children", _var_type=str)
@ -202,7 +201,13 @@ class Markdown(Component):
raise ValueError(f"No markdown component found for tag: {tag}.") raise ValueError(f"No markdown component found for tag: {tag}.")
special_props = [_PROPS_IN_TAG] special_props = [_PROPS_IN_TAG]
children = [_CHILDREN if not tag == "codeblock" else ternary_operation(ARRAY_ISARRAY.call(_CHILDREN), _CHILDREN.to(LiteralVar)[0], _CHILDREN).to(str)] children = [
_CHILDREN
if tag != "codeblock"
else ternary_operation(
ARRAY_ISARRAY.call(_CHILDREN), _CHILDREN.to(list)[0], _CHILDREN
).to(str)
]
# For certain tags, the props from the markdown renderer are not actually valid for the component. # For certain tags, the props from the markdown renderer are not actually valid for the component.
if tag in NO_PROPS_TAGS: if tag in NO_PROPS_TAGS: