[{"name":"Mosaic","comment":" This library provides a way to create responsive mosaic layouts with a modal in Elm applications using elm-ui.\n\n\n# Types\n\n@docs DisplayConfig\n@docs Picture\n@docs PictureSize\n@docs Msg\n@docs Mosaic\n@docs Modal\n@docs KeyBoardKey\n\n\n# Basics\n\n@docs init\n@docs subscriptions\n@docs update\n\n\n# Configuration\n\n@docs defaultSizeConfig\n\n\n# Display Functions\n\n@docs viewMosaic\n@docs displayModal\n\n\n# Utility Functions\n\n@docs updateScreenSize\n@docs takeFullscreenSize\n\n","unions":[{"name":"KeyBoardKey","comment":" Keyboard key type for navigation.\n","args":[],"cases":[]},{"name":"Modal","comment":" Modal type for opening pictures.\n","args":[],"cases":[]},{"name":"Msg","comment":" Message type for the module.\n","args":[],"cases":[["NoOpMsg",[]],["ModalOpen",["Basics.Int"]],["ModalExit",[]],["ReceiveKeyboardEvent",["Mosaic.KeyBoardKey"]]]}],"aliases":[{"name":"DisplayConfig","comment":" Configuration for the display of the mosaic.\n","args":[],"type":"{ baseWidth : Basics.Int, baseHeight : Basics.Int, spacingSize : Basics.Int }"},{"name":"Mosaic","comment":" Display a mosaic with the given list of pictures.\n","args":[],"type":"{ pictures : List.List Mosaic.Picture, modal : Mosaic.Modal, config : Mosaic.DisplayConfig, screenSize : { deviceWidth : Basics.Int, deviceHeight : Basics.Int } }"},{"name":"Picture","comment":" Representation of an image in the mosaic.\n","args":[],"type":"{ id : String.String, size : Mosaic.PictureSize }"},{"name":"PictureSize","comment":" Size of a picture.\n","args":[],"type":"{ width : Basics.Int, height : Basics.Int }"}],"values":[{"name":"defaultSizeConfig","comment":" Default configuration for the mosaic display.\n","type":"Mosaic.DisplayConfig"},{"name":"displayModal","comment":" Display a modal with the selected picture.\n\n`inFront <| Mosaic.displayModal model.mosaic`\n\n","type":"Mosaic.Mosaic -> Element.Element Mosaic.Msg"},{"name":"init","comment":" Initialize a new Mosaic with the given display configuration and list of pictures.\n","type":"Mosaic.DisplayConfig -> List.List Mosaic.Picture -> Mosaic.Mosaic"},{"name":"subscriptions","comment":" Define subscriptions for the keyboard events.\n","type":"Mosaic.Mosaic -> Platform.Sub.Sub Mosaic.Msg"},{"name":"takeFullscreenSize","comment":" Take the fullscreen size of the mosaic.\n","type":"Mosaic.Mosaic -> Mosaic.Mosaic"},{"name":"update","comment":" Update the Mosaic model based on the received message.\n\n    type Msg\n        = MosaicMsg Mosaic.Msg\n        | (...)\n\n    update : Msg -> Model -> ( Model, Cmd Msg )\n    update msg model =\n        case msg of\n            MosaicMsg subMsg ->\n                ( { model | mosaic = Mosaic.update subMsg model.mosaic }, Cmd.none )\n\n    -- Handle other messages...\n\n","type":"Mosaic.Msg -> Mosaic.Mosaic -> Mosaic.Mosaic"},{"name":"updateScreenSize","comment":" Update the screen size in the Mosaic model.\n","type":"{ deviceWidth : Basics.Int, deviceHeight : Basics.Int } -> Mosaic.Mosaic -> Mosaic.Mosaic"},{"name":"viewMosaic","comment":" Display a mosaic of pictures.\n","type":"Mosaic.Mosaic -> Element.Element Mosaic.Msg"}],"binops":[]}]