"""A html component."""
from reflex.components.el.elements.typography import Div
from reflex.vars.base import Var
class Html(Div):
"""Render the html.
Returns:
The code to render the html component.
"""
# The HTML to render.
dangerouslySetInnerHTML: Var[dict[str, str]] # noqa: N815
@classmethod
def create(cls, *children, **props):
"""Create a html component.
Args:
*children: The children of the component.
**props: The props to pass to the component.
Returns:
The html component.
Raises:
ValueError: If children are not provided or more than one child is provided.
"""
# If children are not provided, throw an error.
if len(children) != 1:
raise ValueError("Must provide children to the html component.")
else:
props["dangerouslySetInnerHTML"] = {"__html": children[0]}
# Apply the default classname
given_class_name = props.pop("class_name", [])
if isinstance(given_class_name, str):
given_class_name = [given_class_name]
props["class_name"] = ["rx-Html", *given_class_name]
# Create the component.
return super().create(**props)
html = Html.create