[
    {
        "name": "Debug.Control",
        "comment": " Create interactive controls for complex data structures.\n\n@docs Control\n@docs value\n@docs bool, string, date\n@docs values, maybe, choice, list, record, field\n@docs map\n\n@docs view, currentValue, allValues\n\n",
        "unions": [
            {
                "name": "Control",
                "comment": " An interactive control that produces a value `a`.\n",
                "args": [
                    "a"
                ],
                "cases": []
            }
        ],
        "aliases": [],
        "values": [
            {
                "name": "allValues",
                "comment": " TODO: revise API\n",
                "type": "Control a -> List a"
            },
            {
                "name": "bool",
                "comment": " A `Control` that toggles a `Bool` with a checkbox UI.\n",
                "type": "Bool -> Control Bool"
            },
            {
                "name": "choice",
                "comment": " A `Control` that chooses between a list of nested controls.\n\nThis will crash if you provide an empty list.\n\nThe first entry will be the initial value.\n\n",
                "type": "List ( String, Control a ) -> Control a"
            },
            {
                "name": "currentValue",
                "comment": " Gets the current value of a `Control`.\n",
                "type": "Control a -> a"
            },
            {
                "name": "date",
                "comment": " A `Control` that allows a Date (include date and time) input\nwith a date picker UI.\n",
                "type": "Date -> Control Date"
            },
            {
                "name": "field",
                "comment": " Used with `record` to create a `Control` representing a record.\n\nSee [`record`](#record).\n\n",
                "type": "String -> Control a -> Control (a -> b) -> Control b"
            },
            {
                "name": "list",
                "comment": " A `Control` that provides a list of selected length.\n",
                "type": "Control a -> Control (List a)"
            },
            {
                "name": "map",
                "comment": " Transform the value produced by a `Control`.\n",
                "type": "(a -> b) -> Control a -> Control b"
            },
            {
                "name": "maybe",
                "comment": " A `Control` that wraps another control in a `Maybe`, which a checkbox UI.\n\nThe `Bool` parameter is the initial value, where `False` is `Nothing`,\nand `True` is `Just` with the value of the nested control.\n\n",
                "type": "Bool -> Control a -> Control (Maybe a)"
            },
            {
                "name": "record",
                "comment": " Create a `Control` representing a record with multiple fields.\n\nThis uses an API similar to [elm-decode-pipeline](http://package.elm-lang.org/packages/NoRedInk/elm-decode-pipeline/latest).\n\nYou will use this with `field`.\n\n    import Debug.Control exposing (field, record, string)\n\n    type alias Point =\n        { x : String\n        , y : String\n        }\n\n    pointControl : Control Point\n    pointControl =\n        record Point\n            |> field \"x\" (string \"initial x value\")\n            |> field \"y\" (string \"initial y value\")\n\n",
                "type": "a -> Control a"
            },
            {
                "name": "string",
                "comment": " A `Control` that allows text input.\n",
                "type": "String -> Control String"
            },
            {
                "name": "value",
                "comment": " A `Control` that has a static value (and no UI).\n",
                "type": "a -> Control a"
            },
            {
                "name": "values",
                "comment": " A `Control` that chooses between a list of values with a dropdown UI.\n\nThe first value will be the initial value.\n\n",
                "type": "List a -> Control a"
            },
            {
                "name": "view",
                "comment": " Renders the interactive UI for a `Control`.\n",
                "type": "(Control a -> msg) -> Control a -> Html msg"
            }
        ],
        "binops": []
    }
]