[{"name":"AnimateHeight","comment":" Animate the height of your content.\n\n\n# Set up\n\n@docs Msg, Config, State, Identifier, Transition, init, subscriptions, update\n\n@docs auto, fixed, cubicBezier, ease, easeIn, easeInOut, easeOut, container, instant, immediate, rapid, fast, height, identifier, linear, make, animateOpacity\n@docs customTiming, content, state\n\n","unions":[{"name":"Config","comment":" ","args":["msg"],"cases":[]},{"name":"Identifier","comment":" ","args":[],"cases":[]},{"name":"Msg","comment":" ","args":[],"cases":[]},{"name":"State","comment":" ","args":[],"cases":[]},{"name":"Transition","comment":" Transitions that are dispatched in sync with the animation lifecycle.\n\n> TransitionStart - Dispatched when an animation starts.\n\n> TransitionEnd - Dispatched when an animation ends.\n\nThe Float value is the target pixel height at which the animation will end.\n\n> `TransitionStart` 200 -> The animation has started and will end at 200px\n\n> `TransitionEnd` 200 -> The animation has ended at the height of 200px\n\n","args":[],"cases":[["TransitionStart",["Basics.Float"]],["TransitionEnd",["Basics.Float"]]]}],"aliases":[],"values":[{"name":"animateOpacity","comment":" If set to `True` content will fade-in/fade-out while height is animated.\n\n    container\n        (make AnimateHeight\n            |> animateOpacity True\n        )\n\n","type":"Basics.Bool -> AnimateHeight.Config msg -> AnimateHeight.Config msg"},{"name":"auto","comment":" Will transition to the height of the content.\n\nWhen the container reaches the content height it will set the height to `auto`.\n\n    type Model\n        = State\n\n    update : msg -> Model -> ( Model, Cmd msg )\n    update msg model =\n        case msg of\n            SeeContent ->\n                let\n                    state =\n                        height auto model\n                in\n                ( state\n                , Cmd.none\n                )\n\n","type":"AnimateHeight.Internal.TargetHeight"},{"name":"container","comment":" The container that wraps your view\n\nThe example shows a container with nothing in it.\n\n    yourView : Html Msg\n    yourView =\n        container (make AnimateHeight)\n\n","type":"AnimateHeight.Config msg -> Html.Html msg"},{"name":"content","comment":" The content the [container](#container) will animate.\n\n    yourView : Html Msg\n    yourView =\n        container\n            (make AnimateHeight\n                |> content [-- your content]\n            )\n\n","type":"List.List (Html.Html msg) -> AnimateHeight.Config msg -> AnimateHeight.Config msg"},{"name":"cubicBezier","comment":" [Cubic bezier timing](https://developer.mozilla.org/en-US/docs/Web/CSS/animation-timing-function)\n\n    yourView : Model -> Html Msg\n    yourView model =\n        container\n            (make AnimateHeight\n                |> cubicBezier 0.1 0.7 1 0.1\n            )\n\n","type":"Basics.Float -> Basics.Float -> Basics.Float -> Basics.Float -> AnimateHeight.Config msg -> AnimateHeight.Config msg"},{"name":"customTiming","comment":" Set a custom duration.\nNegative values will be converted to their positive equivalent.\n\ncustom -333 => 333\n\n    container (make |> customTiming 333)\n\n","type":"Basics.Float -> AnimateHeight.Config msg -> AnimateHeight.Config msg"},{"name":"ease","comment":" [Ease timing](https://developer.mozilla.org/en-US/docs/Web/CSS/animation-timing-function)\n\n    yourView : Html Msg\n    yourView =\n        container\n            (make AnimateHeight\n                |> ease\n            )\n\n","type":"AnimateHeight.Config msg -> AnimateHeight.Config msg"},{"name":"easeIn","comment":" [Ease-in timing](https://developer.mozilla.org/en-US/docs/Web/CSS/animation-timing-function)\n\n    container\n        (make AnimateHeight\n            |> easeIn\n        )\n\n","type":"AnimateHeight.Config msg -> AnimateHeight.Config msg"},{"name":"easeInOut","comment":" [Ease-in-out timing](https://developer.mozilla.org/en-US/docs/Web/CSS/animation-timing-function)\n\n    yourView : Html Msg\n    yourView =\n        container\n            (make AnimateHeight\n                |> easeInOut\n            )\n\n","type":"AnimateHeight.Config msg -> AnimateHeight.Config msg"},{"name":"easeOut","comment":" [Ease-out timing](https://developer.mozilla.org/en-US/docs/Web/CSS/animation-timing-function)\n\n    yourView : Html Msg\n    yourView =\n        container\n            (make AnimateHeight\n                |> easeOut\n            )\n\n","type":"AnimateHeight.Config msg -> AnimateHeight.Config msg"},{"name":"fast","comment":" Animation duration of 300ms\n\n    container (make AnimateHeight |> fast)\n\n","type":"AnimateHeight.Config msg -> AnimateHeight.Config msg"},{"name":"fixed","comment":" Will transition to the height you set.\n\nValues translate to px values. e.g. 200 -> 200px\n\n    type Model\n        = State\n\n    update : msg -> Model -> ( Model, Cmd msg )\n    update msg model =\n        case msg of\n            SeeContent ->\n                let\n                    state =\n                        height (fixed 200)\n                in\n                ( state\n                , Cmd.none\n                )\n\n","type":"Basics.Float -> AnimateHeight.Internal.TargetHeight"},{"name":"height","comment":" Set the height of the container\n\n    yourUpdate : Msg -> Model -> ( Model, Cmd Msg )\n    yourUpdate msg model =\n        case msg of\n            ShowTheContent ->\n                let\n                    state =\n                        update auto model\n                in\n                ( state, Cmd.none )\n\n","type":"AnimateHeight.Internal.TargetHeight -> AnimateHeight.State -> AnimateHeight.State"},{"name":"identifier","comment":" The unique id of the container\n\n    yourInit : Model\n    yourInit =\n        init (identifier \"some-unique-id\")\n\n","type":"String.String -> AnimateHeight.Identifier"},{"name":"immediate","comment":" Animation duration of 200ms\n\n    container (make AnimateHeight |> immediate)\n\n","type":"AnimateHeight.Config msg -> AnimateHeight.Config msg"},{"name":"init","comment":" Set up an initial state in your init function.\n\n    type alias Model =\n        State\n\n    yourInit : Model\n    yourInit =\n        init (identifier \"unique-id\")\n\n","type":"AnimateHeight.Identifier -> AnimateHeight.State"},{"name":"instant","comment":" This is like not having an animation at all. Duration maps to 0\n\n    yourView : Html msg\n    yourView =\n        container\n            (make AnimateHeight\n                |> instant\n            )\n\n","type":"AnimateHeight.Config msg -> AnimateHeight.Config msg"},{"name":"linear","comment":" [Linear timing](https://developer.mozilla.org/en-US/docs/Web/CSS/animation-timing-function)\n\n    container\n        (make AnimateHeight\n            |> linear\n        )\n\n","type":"AnimateHeight.Config msg -> AnimateHeight.Config msg"},{"name":"make","comment":" A default [Config](#Config)\n\nArgument is a msg that handles [Msg's](#Msg)\n\n    yourView : Html Msg\n    yourView =\n        container (make AnimateMsg)\n\n","type":"(AnimateHeight.Msg -> msg) -> AnimateHeight.Config msg"},{"name":"rapid","comment":" Animation duration of 250ms\n\n    container (make AnimateHeight |> rapid)\n\n","type":"AnimateHeight.Config msg -> AnimateHeight.Config msg"},{"name":"state","comment":" Sets the State value\n\n    type Model\n        = State\n\n    yourView : Model -> Html Msg\n    yourView model =\n        container\n            (make AnimateHeight\n                |> state model\n            )\n\n","type":"AnimateHeight.State -> AnimateHeight.Config msg -> AnimateHeight.Config msg"},{"name":"subscriptions","comment":" The `AnimateHeight` subscriptions.\n\n    type Model\n        = State\n\n    type Msg\n        = AnimatetMsg AnimateHeight.Msg\n\n    yourSubs : Model -> Sub Msg\n    yourSubs model =\n        Sub.map AnimateMsg <|\n            subscriptions model\n\n","type":"AnimateHeight.State -> Platform.Sub.Sub AnimateHeight.Msg"},{"name":"update","comment":" Add a branch in your update to handle the `AnimateHeight` Msg's.\n\n    type Model\n        = State\n\n    yourUpdate : Msg -> Model -> ( Model, Cmd Msg )\n    yourUpdate msg model =\n        case msg of\n            AnimateMsg animMsg ->\n                let\n                    ( transition, newState, cmds ) =\n                        update animMsg model\n                in\n                ( newState, Cmd.map AnimateMsg cmds )\n\n","type":"AnimateHeight.Msg -> AnimateHeight.State -> ( Maybe.Maybe AnimateHeight.Transition, AnimateHeight.State, Platform.Cmd.Cmd AnimateHeight.Msg )"}],"binops":[]}]