Transmutable.Html.Interior
This module contains the core building blocks that make up the AST.
⚠️ This module should only be used by code that transmutes HTML. If you just want to write HTML, use the main Html module and the other modules such as Html.Attributes.
Types
type Html msg
= Node NodeProperties (Array (Attribute msg)) (Descendants msg)
| TextNode String
type Attribute msg
= Attribute String String
| BoolProperty String Bool
| Event String (EventDecoder msg)
| StringProperty String String
| Style String String
| ValueProperty String Value
type EventDecoder msg
= Normal (Decoder msg)
| MayStopPropagation (Decoder { message : msg, stopPropagation : Bool })
| MayPreventDefault (Decoder { message : msg, preventDefault : Bool })
| Custom (Decoder { message : msg, stopPropagation : Bool, preventDefault : Bool })
type alias NodeProperties =
{ key : Maybe String, tagName : String }
type Descendants msg
= Regular (Array (Html msg))
Transmute
transmute :
{ node : NodeProperties -> Array (Attribute msg)
-> { namespace : Maybe String }
-> outcome, injectDescendants : outcome -> Array transmuted -> transmuted , text : String -> transmuted }
-> Html msg
-> transmuted
Use this helper function to translate Html into another data type.
Mapping
map :
(a -> b) -> Html a -> Html b