[
    {
        "name": "Transit.Style",
        "comment": " Default animations for transitions, to be used on elm-html `style` attribute.\n\n    div\n      [ style (fadeSlideLeft 100 model) ]\n      [ text \"content\" ]\n\n# Compositions\n@docs fadeSlideLeft\n\n# Slide left\n@docs slideLeft, slideOutLeft, slideInLeft\n\n# Fade\n@docs fade, fadeOut, fadeIn\n\n# Tooling to create animations\n@docs transition, Style\n",
        "unions": [],
        "aliases": [
            {
                "name": "Style",
                "comment": " Alias for elm-html style value ",
                "args": [],
                "type": "List ( String, String )"
            }
        ],
        "values": [
            {
                "name": "fade",
                "comment": " Fade transition (out -> in) ",
                "type": "WithTransition m -> Style"
            },
            {
                "name": "fadeIn",
                "comment": " Fade in (enter) ",
                "type": "Float -> Style"
            },
            {
                "name": "fadeOut",
                "comment": " Fade out (exit) ",
                "type": "Float -> Style"
            },
            {
                "name": "fadeSlideLeft",
                "comment": " Combine fade and slideLeft with the specified offset ",
                "type": "Float -> WithTransition m -> Style"
            },
            {
                "name": "slideInLeft",
                "comment": " Slide in to left (enter) ",
                "type": "Float -> Float -> Style"
            },
            {
                "name": "slideLeft",
                "comment": " Slide left transition, with the specified offset ",
                "type": "Float -> WithTransition m -> Style"
            },
            {
                "name": "slideOutLeft",
                "comment": " Slide out to left (exit) ",
                "type": "Float -> Float -> Style"
            },
            {
                "name": "transition",
                "comment": " Create an exit -> enter transition ",
                "type": "(Float -> Style) -> (Float -> Style) -> WithTransition m -> Style"
            }
        ],
        "binops": []
    },
    {
        "name": "Transit",
        "comment": " Styled transitions with minimal boilerplate, typically for page transitions in single page apps.\n\nSee README or [example](https://github.com/etaque/elm-transit/blob/master/example/src/Main.elm) for usage.\n\nUses elm-animations and Effects.tick for animation logic.\n\n# Model\n@docs Transition, WithTransition, initial\n\n# Timeline\n@docs Timeline, timeline, defaultTimeline, withExitDuration, withEnterDuration\n\n# Update\n@docs Action, init, update\n\n# View\n@docs getValue, getStatus, Status\n",
        "unions": [
            {
                "name": "Action",
                "comment": " Transition action, to be wrapped in your own action type. ",
                "args": [
                    "a"
                ],
                "cases": []
            },
            {
                "name": "Status",
                "comment": " Transition status. ",
                "args": [],
                "cases": [
                    [
                        "Exit",
                        []
                    ],
                    [
                        "Enter",
                        []
                    ],
                    [
                        "Done",
                        []
                    ]
                ]
            },
            {
                "name": "Transition",
                "comment": " Opaque type for transition state storage. ",
                "args": [],
                "cases": []
            }
        ],
        "aliases": [
            {
                "name": "Timeline",
                "comment": " Timeline of the transition ",
                "args": [
                    "a"
                ],
                "type": "{ exitDuration : Float, action : a, enterDuration : Float }"
            },
            {
                "name": "WithTransition",
                "comment": " Extended type for the target model holding the transition. ",
                "args": [
                    "model"
                ],
                "type": "{ model | transition : Transition }"
            }
        ],
        "values": [
            {
                "name": "defaultTimeline",
                "comment": " Default timeline for this action: exit of 100ms then enter of 200ms. ",
                "type": "a -> Timeline a"
            },
            {
                "name": "getStatus",
                "comment": " Extract current animation status. ",
                "type": "Transition -> Status"
            },
            {
                "name": "getValue",
                "comment": " Extract current animation value (a float between 0 and 1). ",
                "type": "Transition -> Float"
            },
            {
                "name": "init",
                "comment": " A shortcut to `update` that initialize the transition with the following parameters:\n* `actionWrapper` to wrap Transit's action into your app's Action type (saves you one `Effects.map`)\n* `timeline` to setup transition\n* `target` is the model storing the Transition, that will be updated with new transition state\nReturns a tuple that you can directly return from your `update`.\n ",
                "type": "(Action a -> a) -> Timeline a -> WithTransition target -> ( WithTransition target, Effects a )"
            },
            {
                "name": "initial",
                "comment": " Empty transition state, as initial value in the model. ",
                "type": "Transition"
            },
            {
                "name": "timeline",
                "comment": " Build the timeline:\n> exitDuration => action => enterDuration\n",
                "type": "Float -> a -> Float -> Timeline a"
            },
            {
                "name": "update",
                "comment": " Where all the logic happens. Run transition steps, and triggers timeline's action when needed.\n* `actionWrapper` to wrap Transit's action into app's Action type (saves one `Effects.map`),\n* `action` is the Transit action to process,\n* `target` is the model storing the Transition, that will be updated with new transition state.\n ",
                "type": "(Action a -> a) -> Action a -> WithTransition target -> ( WithTransition target, Effects a )"
            },
            {
                "name": "withEnterDuration",
                "comment": " Update enter duration of timeline. ",
                "type": "Float -> Timeline a -> Timeline a"
            },
            {
                "name": "withExitDuration",
                "comment": " Update exit duration of timeline. ",
                "type": "Float -> Timeline a -> Timeline a"
            }
        ],
        "binops": []
    }
]