[
    {
        "name": "Html.Attributes.Extra",
        "comment": " Additional attributes for html\n\n# Inputs\n@docs valueAsFloat, valueAsInt\n\n# Semantic web\n@docs role\n\n# Meter element\n@docs low, high, optimum\n\n# Media element\n@docs volume\n\n# Unescaped HTML\n@docs innerHtml\n\n# Custom Attributes\n@docs stringProperty\n@docs boolProperty\n@docs floatProperty\n@docs intProperty\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "boolProperty",
                "comment": " Create arbitrary bool *properties*.\n",
                "type": "String -> Bool -> Attribute msg"
            },
            {
                "name": "floatProperty",
                "comment": " Create arbitrary floating-point *properties*.\n",
                "type": "String -> Float -> Attribute msg"
            },
            {
                "name": "high",
                "comment": " The lower numeric bound of the high end of the measured range, used with the meter element.\n",
                "type": "String -> Attribute msg"
            },
            {
                "name": "innerHtml",
                "comment": " Useful for inserting arbitrary unescaped HTML into an element. This function comes with some caveats.\n\n* **Security:** You should never pass untrusted strings (e.g. from user input) to this function. Doing so will lead to [XSS](https://www.owasp.org/index.php/Cross-site_Scripting_(XSS)) vulnerabilities.\n* **Performance:** The virtual DOM subsystem is not aware of HTML inserted in this manner, so these HTML fragments will be slower.\n",
                "type": "String -> Attribute msg"
            },
            {
                "name": "intProperty",
                "comment": " Create arbitrary integer *properties*.\n",
                "type": "String -> Int -> Attribute msg"
            },
            {
                "name": "low",
                "comment": " The upper numeric bound of the low end of the measured range, used with the meter element.\n",
                "type": "String -> Attribute msg"
            },
            {
                "name": "optimum",
                "comment": " This attribute indicates the optimal numeric value, used with the meter element.\n",
                "type": "String -> Attribute msg"
            },
            {
                "name": "role",
                "comment": " Used to annotate markup languages with machine-extractable semantic information about the purpose of an element.\nSee the [official specs](http://www.w3.org/TR/role-attribute/).\n",
                "type": "String -> Attribute msg"
            },
            {
                "name": "stringProperty",
                "comment": " Create arbitrary string *properties*.\n",
                "type": "String -> String -> Attribute msg"
            },
            {
                "name": "valueAsFloat",
                "comment": " Uses `valueAsNumber` to update an input with a floating-point value.\nThis should only be used on &lt;input&gt; of type `number`, `range`, or `date`.\nIt differs from `value` in that a floating point value will not necessarily overwrite the contents on an input element.\n\n    valueAsFloat 2.5 -- e.g. will not change the displayed value for input showing \"2.5000\"\n    valueAsFloat 0.4 -- e.g. will not change the displayed value for input showing \".4\"\n\n",
                "type": "Float -> Attribute msg"
            },
            {
                "name": "valueAsInt",
                "comment": " Uses `valueAsNumber` to update an input with an integer value.\nThis should only be used on &lt;input&gt; of type `number`, `range`, or `date`.\nIt differs from `value` in that an integer value will not necessarily overwrite the contents on an input element.\n\n    valueAsInt 18 -- e.g. will not change the displayed value for input showing \"00018\"\n\n",
                "type": "Int -> Attribute msg"
            },
            {
                "name": "volume",
                "comment": " Audio volume, starting from 0.0 (silent) up to 1.0 (loudest).\n",
                "type": "Float -> Attribute msg"
            }
        ],
        "binops": []
    },
    {
        "name": "Html.Events.Extra",
        "comment": " Additional decoders for use with event handlers in html.\n\n# Event decoders\n* TODO: `key`\n* TODO: `code`\n* TODO: `KeyEvent`, `keyEvent`\n@docs charCode\n\n# Typed event decoders\n@docs targetValueFloat, targetValueInt, targetValueMaybe, targetValueMaybeFloat, targetValueMaybeInt\n@docs targetValueFloatParse, targetValueIntParse, targetValueMaybeFloatParse, targetValueMaybeIntParse\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "charCode",
                "comment": " Character code for key board events.\nThis is being deprecated, but support for DOM3 Keyboard events is not yet present in most browsers.\n",
                "type": "Decoder (Maybe Char)"
            },
            {
                "name": "targetValueFloat",
                "comment": " Floating-point target value.\n",
                "type": "Decoder Float"
            },
            {
                "name": "targetValueFloatParse",
                "comment": " Parse a floating-point value from the input instead of using `valueAsNumber`.\nUse this with inputs that do not have a `number` type.\n",
                "type": "Decoder Float"
            },
            {
                "name": "targetValueInt",
                "comment": " Integer target value.\n",
                "type": "Decoder Int"
            },
            {
                "name": "targetValueIntParse",
                "comment": " Parse an integer value from the input instead of using `valueAsNumber`.\nUse this with inputs that do not have a `number` type.\n",
                "type": "Decoder Int"
            },
            {
                "name": "targetValueMaybe",
                "comment": " String or empty target value.\n",
                "type": "Decoder (Maybe String)"
            },
            {
                "name": "targetValueMaybeFloat",
                "comment": " Floating-point or empty target value.\n",
                "type": "Decoder (Maybe Float)"
            },
            {
                "name": "targetValueMaybeFloatParse",
                "comment": " Parse an optional floating-point value from the input instead of using `valueAsNumber`.\nUse this with inputs that do not have a `number` type.\n",
                "type": "Decoder (Maybe Float)"
            },
            {
                "name": "targetValueMaybeInt",
                "comment": " Integer or empty target value.\n",
                "type": "Decoder (Maybe Int)"
            },
            {
                "name": "targetValueMaybeIntParse",
                "comment": " Parse an optional integer value from the input instead of using `valueAsNumber`.\nUse this with inputs that do not have a `number` type.\n",
                "type": "Decoder (Maybe Int)"
            }
        ],
        "binops": []
    },
    {
        "name": "Html.Extra",
        "comment": " Convenience functionality on\n[`Html`](http://package.elm-lang.org/packages/elm-lang/html/latest/Html#Html)\n\n@docs static\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "static",
                "comment": " Embedding static html.\n\nThe type argument\n[`Never`](http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#Never)\nin `Html Never` tells us that the html has no event handlers attached,\nit will not generate any messages. We may want to embed such static\nhtml into arbitrary views, while using types to enforce the\nstaticness. That is what this function provides.\n\n*Note:* To call this function, the argument need not be literally of type\n`Html Never`. It suffices if it is a fully polymorphic (in the message type)\n`Html` value. For example, this works: `static (Html.text \"abcdef\")`.\n",
                "type": "Html Never -> Html msg"
            }
        ],
        "binops": []
    }
]