module Html.Data ( HtmlChildren(..) , RawHtmlElement(..) , htmlElement ) where import Data.Map as Map import Data.Maybe as Maybe import Data.String.NonEmpty (NonEmptyString) newtype RawHtmlElement = RawHtmlElement { name :: NonEmptyString , attributes :: Map.Map NonEmptyString (Maybe.Maybe String) , children :: HtmlChildren } data HtmlChildren = ElementList (Array RawHtmlElement) | Text String | RawText String | NoEndTag htmlElement :: NonEmptyString -> Map.Map NonEmptyString (Maybe.Maybe String) -> HtmlChildren -> RawHtmlElement htmlElement name attributes children = RawHtmlElement { name, attributes, children }