"""Autogenerated file: DO NOT EDIT!"""
import typing
from dazzler.system import Component, Aspect, UNDEFINED


class Markdown(Component):
    """
    A react-markdown wrapper for dazzler.

    """
    _aspect_keys = []
    _children = []
    source = Aspect(required=True)
    class_name = Aspect()
    style = Aspect()
    escape_html = Aspect(default=True)
    skip_html = Aspect()
    source_pos = Aspect()
    allowed_types = Aspect()
    disallowed_types = Aspect()
    unwrap_disallowed = Aspect()
    link_target = Aspect()

    def __init__(
            self,
            source: str,
            class_name: typing.Optional[str] = UNDEFINED,
            style: typing.Optional[typing.Dict] = UNDEFINED,
            escape_html: typing.Optional[bool] = True,
            skip_html: typing.Optional[bool] = UNDEFINED,
            source_pos: typing.Optional[bool] = UNDEFINED,
            allowed_types: typing.Optional[typing.List] = UNDEFINED,
            disallowed_types: typing.Optional[typing.List] = UNDEFINED,
            unwrap_disallowed: typing.Optional[bool] = UNDEFINED,
            link_target: typing.Optional[str] = UNDEFINED,
            identity: str = None
    ):
        """
        :param source: Markdown string to render.
        :param class_name: CSS class of the container element.
        :param style: Style object to give to container.
        :param escape_html: Escape html element in the source. (default=True)
        :param skip_html: Skip rendering of html elements.
        :param source_pos: Add data-sourcepos attributes to elements.
        :param allowed_types: Which type of node to allow rendering, default to all.
        :param disallowed_types: Which types of nodes should not be rendered, default
            to none.
        :param unwrap_disallowed: Setting to true will try to extract/unwrap the
            children of disallowed nodes. For instance, if
            disallowing Strong, the default behaviour is to simply
            skip the text within the strong altogether, while the
            behaviour some might want is to simply have the text
            returned without the strong wrapping it.
        :param link_target: Set the default target for link tags. (`_blank` to
            open a new tab)
        """
        Component.__init__(self, locals(), identity)
