[
    {
        "name": "AutoExpand",
        "comment": " This library lets you use automatically expanding textareas in Elm.\nThis means the textarea grows in height until it reaches the maximum number of\nrows allowed and then becomes a scrollable box.\n\n\n# View\n\n@docs view\n\n\n# Configuration\n\n@docs Config, config, withId, withClass, withPlaceholder, withStyles\n\n\n# State\n\n@docs State, initState\n\n\n# Custom textareas\n\n@docs attributes\n\n",
        "unions": [
            {
                "name": "Config",
                "comment": " Configuration for your textarea, describing the look and feel.\n\n**Note:** Your `Config` should _never_ be held in your model.\nIt should only appear in `view` code.\n\n",
                "args": [
                    "msg"
                ],
                "cases": []
            },
            {
                "name": "State",
                "comment": " Keeps track of how many rows we need.\n",
                "args": [],
                "cases": []
            }
        ],
        "aliases": [],
        "values": [
            {
                "name": "attributes",
                "comment": " Get the attributes needed for a custom textarea. Note that you may\naccidentally break functionality by including some attributes twice.\n\n    textarea\n        ([ placeholder \"Custom...\" ]\n            ++ AutoExpand.attributes\n                myConfig\n                model.autoExpandState\n                model.textValue\n        )\n        []\n\n",
                "type": "Config msg -> State -> String -> List (Attribute msg)"
            },
            {
                "name": "config",
                "comment": " Create the `Config` for the auto expanding textarea.\n\nA typical configuration might look like this:\n\n    type Msg\n        = AutoExpandInput { textValue : String, state : AutoExpand.State }\n\n    config : AutoExpand.Config Msg\n    config =\n        AutoExpand.config\n            { onInput = AutoExpandInput\n            , padding = 10\n            , lineHeight = 20\n            , minRows = 1\n            , maxRows = 4\n            }\n\n",
                "type": "{ onInput : { textValue : String, state : State } -> msg, padding : Float, lineHeight : Float, minRows : Int, maxRows : Int } -> Config msg"
            },
            {
                "name": "initState",
                "comment": " Sets up the initial `State` for the textarea using a `Config`.\n",
                "type": "Config msg -> State"
            },
            {
                "name": "view",
                "comment": " Show the textarea on your page.\n\n    view : Model -> Html Msg\n    view model =\n        AutoExpand.view config model.autoExpandState model.textValue\n\n",
                "type": "Config msg -> State -> String -> Html msg"
            },
            {
                "name": "withClass",
                "comment": " Add the `class` attribute to the configuration.\n\n    myConfig\n        |> withClass \"textarea has-inset-shadow\"\n\n",
                "type": "String -> Config msg -> Config msg"
            },
            {
                "name": "withId",
                "comment": " Add the `id` attribute to the configuration.\n\n    myConfig\n        |> withId \"chat-message-textarea\"\n\n",
                "type": "String -> Config msg -> Config msg"
            },
            {
                "name": "withPlaceholder",
                "comment": " Add the `placeholder` attribute to the configuration.\n\n    myConfig\n        |> withPlaceholder \"Type a message here\"\n\n",
                "type": "String -> Config msg -> Config msg"
            },
            {
                "name": "withStyles",
                "comment": " Add inline styles for the textarea.\n\n    myConfig\n        |> withStyles [ ( \"font-family\", \"sans-serif\" ) ]\n\n",
                "type": "List ( String, String ) -> Config msg -> Config msg"
            }
        ],
        "binops": []
    }
]