[
    {
        "name": "ElmChat",
        "comment": " This module contains a simple chat component\nthat you can easily add to your Elm user interface.\n\n# Types\n@docs Settings, ExtraAttributes, Updater, Sender\n\n# Functions\n@docs makeSettings, chat, addChat, inputBox\n\n# Variables\n@docs defaultExtraAttributes\n",
        "unions": [],
        "aliases": [
            {
                "name": "ExtraAttributes",
                "comment": " Extra attributes for the UI components.\n\nThis is the initial value of `Settings.attributes`.\n\nYou'll usually create one by changing `defaultAttributes`.\n",
                "args": [
                    "msg"
                ],
                "type": "{ chatTable : List (Attribute msg), sizeButtons : List (Attribute msg), sizeColumn : List (Attribute msg), textColumn : List (Attribute msg), textArea : List (Attribute msg) }"
            },
            {
                "name": "Sender",
                "comment": " A function to turn an input string and a `Settings` record into a `Msg`.\n",
                "args": [
                    "msg"
                ],
                "type": "String -> Settings msg -> msg"
            },
            {
                "name": "Settings",
                "comment": " Settings for the chat component.\n\nMake one of these with `makeSettings`, and store it in your model.\n",
                "args": [
                    "msg"
                ],
                "type": "{ fontSize : Int, text : String, input : String, scroll : Float, attributes : ExtraAttributes msg, id : String, defaultFontSize : Int, showSizeControls : Bool, updater : TheUpdater msg }"
            },
            {
                "name": "Updater",
                "comment": " A function to turn a `Settings` record and a `Cmd` into a `Msg`.\n",
                "args": [
                    "msg"
                ],
                "type": "Settings msg -> Cmd msg -> msg"
            }
        ],
        "values": [
            {
                "name": "addChat",
                "comment": " Add a line to the chat box.\n",
                "type": "Settings msg -> String -> ( Settings msg, Cmd msg )"
            },
            {
                "name": "chat",
                "comment": " Create a chat component.\n",
                "type": "Settings msg -> Html msg"
            },
            {
                "name": "defaultExtraAttributes",
                "comment": " The default value of the `Settings.attributes` property.\n",
                "type": "ExtraAttributes msg"
            },
            {
                "name": "inputBox",
                "comment": " Create a text input control.\n\nArgs are `textSize buttonText sender settings`.\n\n`textSize` is the width in characters of the input control.\n\n`buttonText` is the text for the button that sends the input.\n\n`sender` is a function to turn an input string and `settings into a `Msg`.\n\n`settings` is your `Settings` record.\n",
                "type": "Int -> String -> Sender msg -> Settings msg -> Html msg"
            },
            {
                "name": "makeSettings",
                "comment": " Make a Settings record to add to your Model.\n\nArgs are `id initialFontSize showSizeControls updater`.\n\n`id` is the Html id for the textarea showing the chat.\n\n`initialFontSize` is the initial font size of the textarea in `pt`.\n\n`showSizeControls` is `True` to show the font size controls to the left of the text area.\n\n`updater` will be called to generate messages to update the Settings in your Model.\n",
                "type": "String -> Int -> Bool -> Updater msg -> Settings msg"
            }
        ],
        "binops": []
    }
]