nabekou29 / elm-context-html / ContextHtml

ContextHtml


type ContextHtml ctx msg

Html with context

applyContext : ctx -> ContextHtml ctx msg -> Html msg

Apply context to ContextHtml

view : Html msg
view =
    let
        context = ... -- make Context
    in
    applyContext context viewChild

viewChild : ContextHtml Context msg
viewChild = ...

withContext : (ctx -> Html msg) -> ContextHtml ctx msg

Create ContextHtml

view : ContextHtml ctx msg
view =
    withContext <| \ctx -> Html.div [] []

wrapHtml : Html msg -> ContextHtml ctx msg

Wrap Html to ContextHtml

view : ContextHtml ctx msg
view =
    div [] [ wrapHtml <| viewCommon "Text" ]

viewCommon : String -> Html msg
viewCommon = ...

useContext

useContext : (ctx -> a) -> (a -> ContextHtml ctx msg) -> ContextHtml ctx msg

Use a context value

type alias Context =
    { text : String }

view =
    useContext .text <| \text_ -> div [] [ text text_ ]

When Context is Opaque type

-- Context.elm
type Context
    = Context { text : String }

-- Expose Selector accessing context value
textSelector (Context { text }) =
    text

textWithPrefixSelector (Context { text }) =
    "prefix_" ++ text

-- Main.elm
view1 =
    useContext textSelector <| \text_ -> div [] [ text text_ ]

view2 =
    useContext textWithPrefixSelector <| \text_ -> div [] [ text text_ ]

useContext2 : (ctx -> a) -> (ctx -> b) -> (a -> b -> ContextHtml ctx msg) -> ContextHtml ctx msg

Use context values

type alias Context =
    { text : String
    , color : String
    }

view =
    useContext2 .text .color <| \text_ color -> div [ style "color" color ] [ text text_ ]

useContext3 : (ctx -> a) -> (ctx -> b) -> (ctx -> c) -> (a -> b -> c -> ContextHtml ctx msg) -> ContextHtml ctx msg

useContext4 : (ctx -> a) -> (ctx -> b) -> (ctx -> c) -> (ctx -> d) -> (a -> b -> c -> d -> ContextHtml ctx msg) -> ContextHtml ctx msg

useContext5 : (ctx -> a) -> (ctx -> b) -> (ctx -> c) -> (ctx -> d) -> (ctx -> e) -> (a -> b -> c -> d -> e -> ContextHtml ctx msg) -> ContextHtml ctx msg

useContext6 : (ctx -> a) -> (ctx -> b) -> (ctx -> c) -> (ctx -> d) -> (ctx -> e) -> (ctx -> f) -> (a -> b -> c -> d -> e -> f -> ContextHtml ctx msg) -> ContextHtml ctx msg

useContext7 : (ctx -> a) -> (ctx -> b) -> (ctx -> c) -> (ctx -> d) -> (ctx -> e) -> (ctx -> f) -> (ctx -> g) -> (a -> b -> c -> d -> e -> f -> g -> ContextHtml ctx msg) -> ContextHtml ctx msg

useContext8 : (ctx -> a) -> (ctx -> b) -> (ctx -> c) -> (ctx -> d) -> (ctx -> e) -> (ctx -> f) -> (ctx -> g) -> (ctx -> h) -> (a -> b -> c -> d -> e -> f -> g -> h -> ContextHtml ctx msg) -> ContextHtml ctx msg

Primitives

text : String -> ContextHtml ctx msg

node : String -> List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

map : (a -> msg) -> ContextHtml ctx a -> ContextHtml ctx msg

Tags

Headers

h1 : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

h2 : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

h3 : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

h4 : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

h5 : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

h6 : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

Grouping Content

div : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

p : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

hr : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

pre : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

blockquote : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

Text

span : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

a : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

code : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

em : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

strong : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

i : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

b : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

u : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

sub : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

sup : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

br : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

Lists

ol : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

ul : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

li : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

dl : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

dt : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

dd : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

Embedded Content

img : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

iframe : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

canvas : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

math : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

Inputs

form : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

input : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

textarea : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

button : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

select : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

option : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

Sections

section : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

nav : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

article : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

aside : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

header : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

footer : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

address : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

main_ : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

Figures

figure : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

figcaption : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

Tables

table : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

caption : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

colgroup : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

col : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

tbody : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

thead : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

tfoot : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

tr : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

td : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

th : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

Less Common Elements

Less Common Inputs

fieldset : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

legend : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

label : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

datalist : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

optgroup : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

output : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

progress : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

meter : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

Audio and Video

audio : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

video : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

source : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

track : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

Embedded Objects

embed : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

object : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

param : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

Text Edits

ins : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

del : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

Semantic Text

small : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

cite : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

dfn : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

abbr : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

time : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

var : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

samp : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

kbd : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

s : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

q : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

Less Common Text Tags

mark : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

ruby : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

rt : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

rp : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

bdi : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

bdo : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

wbr : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

Interactive Elements

details : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

summary : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

menuitem : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg

menu : List (Html.Attribute msg) -> List (ContextHtml ctx msg) -> ContextHtml ctx msg