[{"name":"Curtissimo.SplitPane","comment":" `Curtissimo.SplitPane` provides a nestable split pane for Elm.\n\n    import Curtissimo.SplitPane as SplitPane exposing (SplitPane)\n    import Html exposing (Html, text)\n\n    type alias Model =\n        { splitPane : SplitPane Msg }\n\n    type Msg\n        = SplitPaneMsg SplitPane.Msg\n        | SplitPaneReady\n\n    init : () -> ( Model, Cmd Msg )\n    init _ =\n        let\n            ( splitPane, splitPaneCmd ) =\n                SplitPane.init\n                    SplitPane.VerticalOrientation\n                    (SplitPane.Px 200)\n                    SplitPane.After\n                    \"split-pane\"\n                    SplitPaneMsg\n                    SplitPaneReady\n        in\n        ( { splitPane = splitPane }\n        , splitPaneCmd\n        )\n\n    subscriptions : Model -> Sub Msg\n    subscriptions model =\n        SplitPane.subscriptions model.splitPane\n\n    update : Msg -> Model -> ( Model, Cmd Msg )\n    update msg model =\n        case msg of\n            SplitPaneMsg splitPaneMsg ->\n                let\n                    ( updated, updatedMsg ) =\n                        model.splitPane\n                            |> SplitPane.update splitPaneMsg\n                in\n                ( { splitPane = updated }\n                , updatedMsg\n                )\n\n            SplitPaneReady ->\n                ( model, Cmd.none )\n\n    view : Model -> Browser.Document Msg\n    view model =\n        { title = \"My Split Pane Page\"\n        , body =\n            model.splitPane\n                |> SplitPane.assignPanes\n                |> SplitPane.setPrimaryPane\n                    (text \"Primary pane\")\n                |> SplitPane.setSecondaryPane\n                    (text \"Secondary pane\")\n                |> SplitPane.view\n        }\n\n**NOTE:** Don't forget to include the `subscriptions`!\n\n\n## Inititalization\n\n@docs init, Orientation, Position, Unit\n\n\n## Rendering\n\n@docs assignPanes, setPrimaryPane, setSecondaryPane, view\n\n\n## Updates\n\n@docs subscriptions, update\n\n\n## Modifications\n\n@docs setSecondaryPaneMeasure, setSecondaryPaneVisible, useThickGutters\n\n\n## Getters\n\n@docs getSecondaryPaneMeasure, hasThickGutters, isReady, isSecondaryPaneVisible\n\n\n## Opaque types\n\n@docs Msg, SplitPane, SplitPaneRenderable\n\n","unions":[{"name":"Msg","comment":" The messages the split pane uses.\n","args":[],"cases":[]},{"name":"Orientation","comment":" Orientations the split pane can have.\n","args":[],"cases":[["Horizontal",[]],["Vertical",[]]]},{"name":"Position","comment":" Indicator if the secondary pane is before or after the primary pane.\n","args":[],"cases":[["Before",[]],["After",[]]]},{"name":"SplitPane","comment":" The state of the split pane.\n","args":["msg"],"cases":[]},{"name":"SplitPaneRenderable","comment":" The bridge between states and rendering.\n","args":["msg"],"cases":[]},{"name":"Unit","comment":" The way to specify the measure of the secondary pane.\n","args":[],"cases":[["Pct",["Basics.Float"]],["Px",["Basics.Int"]]]}],"aliases":[],"values":[{"name":"assignPanes","comment":" Change `SplitPane` into `SplitPaneRenderable` to prepare it to render.\n","type":"Curtissimo.SplitPane.SplitPane msg -> Curtissimo.SplitPane.SplitPaneRenderable msg"},{"name":"getSecondaryPaneMeasure","comment":" Get the current measure of the secondary pane.\n","type":"Curtissimo.SplitPane.SplitPane msg -> Basics.Int"},{"name":"hasThickGutters","comment":" Query the state to determine if the split pane uses thick gutters\n","type":"Curtissimo.SplitPane.SplitPane msg -> Basics.Bool"},{"name":"init","comment":" Initialize a new split pane.\n","type":"Curtissimo.SplitPane.Orientation -> Curtissimo.SplitPane.Unit -> Curtissimo.SplitPane.Position -> String.String -> (Curtissimo.SplitPane.Msg -> msg) -> msg -> ( Curtissimo.SplitPane.SplitPane msg, Platform.Cmd.Cmd msg )"},{"name":"isReady","comment":" Query the state to determine if the split pane is ready to use.\n","type":"Curtissimo.SplitPane.SplitPane msg -> Basics.Bool"},{"name":"isSecondaryPaneVisible","comment":" Query the state to determine if the secondary pane is visible.\n","type":"Curtissimo.SplitPane.SplitPane msg -> Basics.Bool"},{"name":"setPrimaryPane","comment":" Set the content of the primary pane of the split pane.\n","type":"Html.Html msg -> Curtissimo.SplitPane.SplitPaneRenderable msg -> Curtissimo.SplitPane.SplitPaneRenderable msg"},{"name":"setSecondaryPane","comment":" Set the content of the secondary pane of the split pane.\n","type":"Html.Html msg -> Curtissimo.SplitPane.SplitPaneRenderable msg -> Curtissimo.SplitPane.SplitPaneRenderable msg"},{"name":"setSecondaryPaneMeasure","comment":" Set the secondary pane to a specific measure based on how the split pane\nwas initialized. If the split pane was initialized as a percentage, then the\ninteger value is clamped to 0 and 100 inclusive.\n","type":"Basics.Int -> Curtissimo.SplitPane.SplitPane msg -> Curtissimo.SplitPane.SplitPane msg"},{"name":"setSecondaryPaneVisible","comment":" Set the visibility of the secondary pane.\n\nWhen set to `False`, the secondary pane and the resize gutter are not visible.\n\n","type":"Basics.Bool -> Curtissimo.SplitPane.SplitPane msg -> Curtissimo.SplitPane.SplitPane msg"},{"name":"subscriptions","comment":" The subscriptions used to monitor mouse movements when a split pane resize\nis active, as well as window resizing.\n","type":"Curtissimo.SplitPane.SplitPane msg -> Platform.Sub.Sub msg"},{"name":"update","comment":" Update the state of the split pane.\n","type":"Curtissimo.SplitPane.Msg -> Curtissimo.SplitPane.SplitPane msg -> ( Curtissimo.SplitPane.SplitPane msg, Platform.Cmd.Cmd msg )"},{"name":"useThickGutters","comment":" Changes the layout of the resize gutter to be thin or thick based\non the flag provided.\n","type":"Basics.Bool -> Curtissimo.SplitPane.SplitPane msg -> Curtissimo.SplitPane.SplitPane msg"},{"name":"view","comment":" Render the split pane.\n","type":"Curtissimo.SplitPane.SplitPaneRenderable msg -> Html.Html msg"}],"binops":[]}]