[{"name":"Component","comment":" Build custom elements with Elm. A component's `Input` record defines its\nattributes, and its `Output` type defines its events.\n\n# Components\n@docs Component, define\n\n# Generated bridge\nThe build tool uses these. Component authors do not call them directly.\n@docs Event, program\n\n","unions":[{"name":"Component","comment":" A custom element definition. Create one with `define`.\n","args":["input","state","msg","output"],"cases":[]}],"aliases":[{"name":"Event","comment":" Used by generated code to send an event to the host. Component authors\nemit their `Output` values instead.\n","args":[],"type":"{ name : String.String, detail : Json.Encode.Value }"}],"values":[{"name":"define","comment":" Define a component. `init` receives the initial input. `receive` gets the\ncomplete input after an attribute changes; return `Nothing` to ignore the\nchange. Keep any input needed by `view` in the component's state.\n\nThe list returned by `update` contains events for the host. Return `[]` when\nthere are none.\n\n    component =\n        Component.define\n            { init = init\n            , receive = Just << Received\n            , update = update\n            , view = view\n            , subscriptions = always Sub.none\n            }\n\n","type":"{ init : input -> ( state, Platform.Cmd.Cmd msg ), receive : input -> Maybe.Maybe msg, update : msg -> state -> ( state, Platform.Cmd.Cmd msg, List.List output ), view : state -> Html.Html msg, subscriptions : state -> Platform.Sub.Sub msg } -> Component.Component input state msg output"},{"name":"program","comment":" Connect a component to generated ports and codecs. The build tool calls\nthis from a generated Elm entry point; component modules use `define`.\n\nAn element keeps its state when it leaves the page and returns. Its\nsubscriptions pause while it is detached.\n\n","type":"Json.Decode.Decoder input -> (output -> Component.Event) -> { inputChanged : (Json.Decode.Value -> Component.Msg msg) -> Platform.Sub.Sub (Component.Msg msg), connectionChanged : (Basics.Bool -> Component.Msg msg) -> Platform.Sub.Sub (Component.Msg msg), outputSent : Json.Encode.Value -> Platform.Cmd.Cmd (Component.Msg msg) } -> Component.Component input state msg output -> Platform.Program Json.Decode.Value (Component.Model state) (Component.Msg msg)"}],"binops":[]}]