[
    {
        "name": "ContextMenu",
        "comment": " The ContextMenu component that follows the Elm Architecture.\n\nSee [How to use](http://package.elm-lang.org/packages/jinjor/elm-contextmenu/latest).\n\n# TEA Parts\n\nThe boilerplace functions. See [The Elm Architecture](https://guide.elm-lang.org/architecture/) for more information.\n\n@docs ContextMenu, Msg, init, update, subscriptions\n\n# Item\n@docs Item, item, itemWithAnnotation, disabled, icon, shortcut\n\n# Config\n@docs Config, Direction, Overflow, Cursor, defaultConfig\n\n# View\n@docs view, open, openIf\n\n",
        "unions": [
            {
                "name": "ContextMenu",
                "comment": " The Model. Put whatever context you like, which is used to create menu items.\n",
                "args": [
                    "context"
                ],
                "cases": []
            },
            {
                "name": "Cursor",
                "comment": " The shape of cursor during hovering on the menu.\n",
                "args": [],
                "cases": [
                    [
                        "Arrow",
                        []
                    ],
                    [
                        "Pointer",
                        []
                    ]
                ]
            },
            {
                "name": "Direction",
                "comment": " The default direction the menu will be shown at.\n",
                "args": [],
                "cases": [
                    [
                        "LeftBottom",
                        []
                    ],
                    [
                        "RightBottom",
                        []
                    ]
                ]
            },
            {
                "name": "Item",
                "comment": " The menu item. You can construct it with pipe-friendly functions.\n\n```\nContextMenu.item \"Take photos\"\n  |> ContextMenu.icon FontAwesome.camera Color.green\n  |> ContextMenu.disabled True\n```\n",
                "args": [],
                "cases": []
            },
            {
                "name": "Msg",
                "comment": " The Message.\n",
                "args": [
                    "context"
                ],
                "cases": []
            },
            {
                "name": "Overflow",
                "comment": " The strategies how to show the menu when it goes out of window.\n",
                "args": [],
                "cases": [
                    [
                        "Shift",
                        []
                    ],
                    [
                        "Mirror",
                        []
                    ]
                ]
            }
        ],
        "aliases": [
            {
                "name": "Config",
                "comment": " Defines the styles of the menu. See [examples](https://github.com/jinjor/elm-contextmenu/blob/master/examples/Configs.elm).\n\n",
                "args": [],
                "type": "{ width : Int, direction : Direction, overflowX : Overflow, overflowY : Overflow, containerColor : Color, hoverColor : Color, invertText : Bool, cursor : Cursor, rounded : Bool, fontFamily : String }"
            }
        ],
        "values": [
            {
                "name": "defaultConfig",
                "comment": " The default config.\n",
                "type": "Config"
            },
            {
                "name": "disabled",
                "comment": " Disables the item. True = disabled, False = enabled.\n",
                "type": "Bool -> Item -> Item"
            },
            {
                "name": "icon",
                "comment": " Shows the icon.\n\nThe first function creates the icon.\nThis fuction is compatible with\n [elm-material-icons](http://package.elm-lang.org/packages/elm-community/elm-material-icons/latest) and\n [elm-font-awesome](http://package.elm-lang.org/packages/jystic/elm-font-awesome/latest).\n",
                "type": "(Color -> Int -> Html Never) -> Color -> Item -> Item"
            },
            {
                "name": "init",
                "comment": " The init function.\n",
                "type": "( ContextMenu context, Cmd (Msg context) )"
            },
            {
                "name": "item",
                "comment": " Creates a simple text item.\n",
                "type": "String -> Item"
            },
            {
                "name": "itemWithAnnotation",
                "comment": " Creates an item with annotation which will displayed just below the item name.\n",
                "type": "String -> String -> Item"
            },
            {
                "name": "open",
                "comment": " Makes the attribute that triggers to open the menu.\nThis attribute is passed for each element that needs a menu.\n\nArguments:\n\n1. function to transform component's message into user's message\n2. the context which is used to create items\n\n",
                "type": "(Msg context -> msg) -> context -> Attribute msg"
            },
            {
                "name": "openIf",
                "comment": " Similar to `open` but only works under particular condition.\n\nThis is useful for debugging on browser.\n",
                "type": "Bool -> (Msg context -> msg) -> context -> Attribute msg"
            },
            {
                "name": "shortcut",
                "comment": " Displays the shortcut key at the right.\n",
                "type": "String -> Item -> Item"
            },
            {
                "name": "subscriptions",
                "comment": " The Subscription.\n",
                "type": "ContextMenu context -> Sub (Msg context)"
            },
            {
                "name": "update",
                "comment": " The update function.\n",
                "type": "Msg context -> ContextMenu context -> ( ContextMenu context, Cmd (Msg context) )"
            },
            {
                "name": "view",
                "comment": " Shows the menu. This should be called at only one place.\n\nArguments:\n\n1. the Config\n2. function to transform component's message into user's message\n3. function to create item groups\n4. the Model\n\n",
                "type": "Config -> (Msg context -> msg) -> (context -> List (List ( Item, msg ))) -> ContextMenu context -> Html msg"
            }
        ],
        "binops": []
    }
]