[{"name":"Html.Style","comment":" This is a experimental module for writing css.\n\nIt emphasises simplicity over type safety and is compatible with both Elm-UI and Elm-CSS\n\n\n# Sizing\n\n@docs width, height, boxSizing, boxSizingBorderBox\n\n\n# Position\n\n@docs position, positionStatic, positionRelative, positionAbsolute, positionFixed, positionSticky\n\n@docs top, right, bottom, left\n\n\n# Display\n\n@docs display, displayBlock, displayInline, displayFlex, displayInlineFlex, displayGrid, displayInlineGrid, displayNone\n\n\n# Flexbox\n\n@docs flex, gap\n\n@docs flexDirection, flexDirectionRow, flexDirectionColumn\n@docs alignItems, alignItemsCenter, alignItemsFlexStart, alignItemsFlexEnd\n@docs justifyContent, justifyContentCenter, justifyContentFlexStart, justifyContentFlexEnd\n\n","unions":[],"aliases":[],"values":[{"name":"alignItems","comment":" The CSS align-items property sets the align-self value on all direct children as a group. In Flexbox, it controls the alignment of items on the Cross Axis. In Grid Layout, it controls the alignment of items on the Block Axis within their grid area.\n\n<https://developer.mozilla.org/en-US/docs/Web/CSS/align-items>\n\n","type":"String.String -> Html.Attribute msg"},{"name":"alignItemsCenter","comment":" The flex items' margin boxes are centered within the line on the cross-axis. If the cross-size of an item is larger than the flex container, it will overflow equally in both directions.\n\n<https://developer.mozilla.org/en-US/docs/Web/CSS/align-items>\n\n","type":"Html.Attribute msg"},{"name":"alignItemsFlexEnd","comment":" Used in flex layout only, aligns the flex items flush against the flex container's main-end or cross-end side.\n\n<https://developer.mozilla.org/en-US/docs/Web/CSS/align-items>\n\n","type":"Html.Attribute msg"},{"name":"alignItemsFlexStart","comment":" Used in flex layout only, aligns the flex items flush against the flex container's main-start or cross-start side.\n\n<https://developer.mozilla.org/en-US/docs/Web/CSS/align-items>\n\n","type":"Html.Attribute msg"},{"name":"bottom","comment":" The bottom CSS property participates in setting the vertical position of a positioned element. It has no effect on non-positioned elements.\n\n<https://developer.mozilla.org/en-US/docs/Web/CSS/bottom>\n\n","type":"String.String -> Html.Attribute msg"},{"name":"boxSizing","comment":" The box-sizing CSS property sets how the total width and height of an element is calculated.\n\n<https://developer.mozilla.org/en-US/docs/Web/CSS/box-sizing>\n\n","type":"String.String -> Html.Attribute msg"},{"name":"boxSizingBorderBox","comment":" The width and height properties include the content, padding, and border, but do not include the margin. Note that padding and border will be inside of the box. For example, .box {width: 350px; border: 10px solid black;} renders a box that is 350px wide, with the area for content being 330px wide. The content box can't be negative and is floored to 0, making it impossible to use border-box to make the element disappear.\n\n<https://developer.mozilla.org/en-US/docs/Web/CSS/box-sizing>\n\n","type":"Html.Attribute msg"},{"name":"display","comment":" The display CSS property sets whether an element is treated as a block or inline box and the layout used for its children, such as flow layout, grid or flex.\n\n<https://developer.mozilla.org/en-US/docs/Web/CSS/display>\n\n","type":"String.String -> Html.Attribute msg"},{"name":"displayBlock","comment":" The element generates a block box, generating line breaks both before and after the element when in the normal flow.\n\n<https://developer.mozilla.org/en-US/docs/Web/CSS/display>\n\n","type":"Html.Attribute msg"},{"name":"displayFlex","comment":" The element behaves like a block-level element and lays out its content according to the flexbox model.\n\n<https://developer.mozilla.org/en-US/docs/Web/CSS/display>\n\n","type":"Html.Attribute msg"},{"name":"displayGrid","comment":" The element behaves like a block-level element and lays out its content according to the grid model.\n\n<https://developer.mozilla.org/en-US/docs/Web/CSS/display>\n\n","type":"Html.Attribute msg"},{"name":"displayInline","comment":" The element generates one or more inline boxes that do not generate line breaks before or after themselves. In normal flow, the next element will be on the same line if there is space.\n\n<https://developer.mozilla.org/en-US/docs/Web/CSS/display>\n\n","type":"Html.Attribute msg"},{"name":"displayInlineFlex","comment":" <https://developer.mozilla.org/en-US/docs/Web/CSS/display>\n","type":"Html.Attribute msg"},{"name":"displayInlineGrid","comment":" <https://developer.mozilla.org/en-US/docs/Web/CSS/display>\n","type":"Html.Attribute msg"},{"name":"displayNone","comment":" Turns off the display of an element so that it has no effect on layout (the document is rendered as though the element did not exist). All descendant elements also have their display turned off. To have an element take up the space that it would normally take, but without actually rendering anything, use the visibility property instead.\n\n<https://developer.mozilla.org/en-US/docs/Web/CSS/display>\n\n","type":"Html.Attribute msg"},{"name":"flex","comment":" The flex CSS shorthand property sets how a flex item will grow or shrink to fit the space available in its flex container.\n\n<https://developer.mozilla.org/en-US/docs/Web/CSS/flex>\n\n","type":"String.String -> Html.Attribute msg"},{"name":"flexDirection","comment":" The flex-direction CSS property sets how flex items are placed in the flex container defining the main axis and the direction (normal or reversed).\n\n<https://developer.mozilla.org/en-US/docs/Web/CSS/flex-direction>\n\n","type":"String.String -> Html.Attribute msg"},{"name":"flexDirectionColumn","comment":" The flex container's main-axis is the same as the block-axis. The main-start and main-end points are the same as the before and after points of the writing-mode.\n\n<https://developer.mozilla.org/en-US/docs/Web/CSS/flex-direction>\n\n","type":"Html.Attribute msg"},{"name":"flexDirectionRow","comment":" The flex container's main-axis is defined to be the same as the text direction. The main-start and main-end points are the same as the content direction.\n\n<https://developer.mozilla.org/en-US/docs/Web/CSS/flex-direction>\n\n","type":"Html.Attribute msg"},{"name":"gap","comment":" The gap CSS shorthand property sets the gaps (gutters) between rows and columns.\n\n<https://developer.mozilla.org/en-US/docs/Web/CSS/gap>\n\n","type":"String.String -> Html.Attribute msg"},{"name":"height","comment":" The height CSS property specifies the height of an element. By default, the property defines the height of the content area. If box-sizing is set to border-box, however, it instead determines the height of the border area.\n\n<https://developer.mozilla.org/en-US/docs/Web/CSS/height>\n\n","type":"String.String -> Html.Attribute msg"},{"name":"justifyContent","comment":" The CSS justify-content property defines how the browser distributes space between and around content items along the main-axis of a flex container, and the inline axis of a grid container.\n\n<https://developer.mozilla.org/en-US/docs/Web/CSS/justify-content>\n\n","type":"String.String -> Html.Attribute msg"},{"name":"justifyContentCenter","comment":" The items are packed flush to each other toward the center of the alignment container along the main axis.\n\n<https://developer.mozilla.org/en-US/docs/Web/CSS/justify-content>\n\n","type":"Html.Attribute msg"},{"name":"justifyContentFlexEnd","comment":" The items are packed flush to each other toward the edge of the alignment container depending on the flex container's main-end side. This only applies to flex layout items. For items that are not children of a flex container, this value is treated like end.\n\n<https://developer.mozilla.org/en-US/docs/Web/CSS/justify-content>\n\n","type":"Html.Attribute msg"},{"name":"justifyContentFlexStart","comment":" The items are packed flush to each other toward the edge of the alignment container depending on the flex container's main-start side. This only applies to flex layout items. For items that are not children of a flex container, this value is treated like start.\n\n<https://developer.mozilla.org/en-US/docs/Web/CSS/justify-content>\n\n","type":"Html.Attribute msg"},{"name":"left","comment":" The left CSS property participates in specifying the horizontal position of a positioned element. It has no effect on non-positioned elements.\n\n<https://developer.mozilla.org/en-US/docs/Web/CSS/left>\n\n","type":"String.String -> Html.Attribute msg"},{"name":"position","comment":" The position CSS property sets how an element is positioned in a document. The top, right, bottom, and left properties determine the final location of positioned elements.\n\n<https://developer.mozilla.org/en-US/docs/Web/CSS/position>\n\n","type":"String.String -> Html.Attribute msg"},{"name":"positionAbsolute","comment":" The element is removed from the normal document flow, and no space is created for the element in the page layout. The element is positioned relative to its closest positioned ancestor (if any) or to the initial containing block. Its final position is determined by the values of top, right, bottom, and left.\n\nThis value creates a new stacking context when the value of z-index is not auto. The margins of absolutely positioned boxes do not collapse with other margins.\n\n<https://developer.mozilla.org/en-US/docs/Web/CSS/position>\n\n","type":"Html.Attribute msg"},{"name":"positionFixed","comment":" The element is removed from the normal document flow, and no space is created for the element in the page layout. The element is positioned relative to its initial containing block, which is the viewport in the case of visual media. Its final position is determined by the values of top, right, bottom, and left.\n\nThis value always creates a new stacking context. In printed documents, the element is placed in the same position on every page.\n\n<https://developer.mozilla.org/en-US/docs/Web/CSS/position>\n\n","type":"Html.Attribute msg"},{"name":"positionRelative","comment":" The element is positioned according to the normal flow of the document, and then offset relative to itself based on the values of top, right, bottom, and left. The offset does not affect the position of any other elements; thus, the space given for the element in the page layout is the same as if position were static.\n\nThis value creates a new stacking context when the value of z-index is not auto. Its effect on table-\\*-group, table-row, table-column, table-cell, and table-caption elements is undefined.\n\n<https://developer.mozilla.org/en-US/docs/Web/CSS/position>\n\n","type":"Html.Attribute msg"},{"name":"positionStatic","comment":" The element is positioned according to the normal flow of the document. The top, right, bottom, left, and z-index properties have no effect. This is the default value.\n\n<https://developer.mozilla.org/en-US/docs/Web/CSS/position>\n\n","type":"Html.Attribute msg"},{"name":"positionSticky","comment":" The element is positioned according to the normal flow of the document, and then offset relative to its nearest scrolling ancestor and containing block (nearest block-level ancestor), including table-related elements, based on the values of top, right, bottom, and left. The offset does not affect the position of any other elements.\n\nThis value always creates a new stacking context. Note that a sticky element \"sticks\" to its nearest ancestor that has a \"scrolling mechanism\" (created when overflow is hidden, scroll, auto, or overlay), even if that ancestor isn't the nearest actually scrolling ancestor.\n\n<https://developer.mozilla.org/en-US/docs/Web/CSS/position>\n\n","type":"Html.Attribute msg"},{"name":"right","comment":" The right CSS property participates in specifying the horizontal position of a positioned element. It has no effect on non-positioned elements.\n\n<https://developer.mozilla.org/en-US/docs/Web/CSS/top>\n\n","type":"String.String -> Html.Attribute msg"},{"name":"top","comment":" The top CSS property participates in specifying the vertical position of a positioned element. It has no effect on non-positioned elements.\n\n<https://developer.mozilla.org/en-US/docs/Web/CSS/top>\n\n","type":"String.String -> Html.Attribute msg"},{"name":"width","comment":" The width CSS property sets an element's width. By default, it sets the width of the content area, but if box-sizing is set to border-box, it sets the width of the border area.\n\n<https://developer.mozilla.org/en-US/docs/Web/CSS/width>\n\n","type":"String.String -> Html.Attribute msg"}],"binops":[]},{"name":"Layout","comment":" write HTML like elm-ui\n\n\n# Html elements\n\n\n## Layouting\n\n@docs none, container, el, column, row, withStack, orderedList, unorderedList, descriptionList\n\n\n## Elements\n\n@docs heading1, heading2, heading3, heading4, heading5, heading6\n\n@docs text, image, linkTo, linkToNewTab, textButton, button, radio, paragraph\n\n@docs lineBreak, horizontalRuler\n\n\n# Attributes\n\n@docs centered, noWrap, wrap\n\n@docs contentAtStart, contentAtEnd, contentCentered, contentWithSpaceBetween\n\n@docs alignAtStart, alignAtEnd, alignAtBaseline, alignAtCenter, alignStretched\n\n@docs gap\n\n\n## Size\n\n@docs fill, fillPortion\n\n\n## Sticky\n\n@docs sticky, stickyOnBottom, stickyOnTop\n\n\n## Role\n\n@docs asEl, asButton\n\n","unions":[],"aliases":[],"values":[{"name":"alignAtBaseline","comment":"\n\n    alignAtBaseline =\n        Html.Attributes.style \"align-items\" \"baseline\"\n\n","type":"Html.Attribute msg"},{"name":"alignAtCenter","comment":"\n\n    alignAtCenter =\n        Html.Attributes.style \"align-items\" \"center\"\n\n","type":"Html.Attribute msg"},{"name":"alignAtEnd","comment":"\n\n    alignAtEnd =\n        Html.Attributes.style \"align-items\" \"flex-end\"\n\n","type":"Html.Attribute msg"},{"name":"alignAtStart","comment":"\n\n    alignAtStart =\n        Html.Attributes.style \"align-items\" \"flex-start\"\n\n","type":"Html.Attribute msg"},{"name":"alignStretched","comment":"\n\n    alignStretched =\n        Html.Attributes.style \"align-items\" \"stretch\"\n\n","type":"Html.Attribute msg"},{"name":"asButton","comment":" Turns anything into a button\n\n    asButton args =\n        [ Html.Attributes.style \"cursor\" \"pointer\"\n        , Html.Attributes.attribute \"aria-label\" args.label\n        , Html.Attributes.attribute \"role\" \"button\"\n        ]\n            ++ (args.onPress\n                    |> Maybe.map (\\msg -> [ Html.Events.onClick msg ])\n                    |> Maybe.withDefault []\n               )\n\n","type":"{ onPress : Maybe.Maybe msg, label : String.String } -> List.List (Html.Attribute msg)"},{"name":"asEl","comment":"\n\n    asEl =\n        Html.Attributes.style \"display\" \"flex\"\n\n","type":"Html.Attribute msg"},{"name":"button","comment":"\n\n    button args attrs content =\n        Html.button (asEl :: asButton args ++ attrs)\n            [ content ]\n\n","type":"List.List (Html.Attribute msg) -> { onPress : Maybe.Maybe msg, label : String.String } -> Html.Html msg -> Html.Html msg"},{"name":"centered","comment":"\n\n    centered =\n        [ contentCentered, alignAtCenter ]\n\n","type":"List.List (Html.Attribute msg)"},{"name":"column","comment":"\n\n    column attrs =\n        Html.div\n            ([ Html.Attributes.style \"display\" \"flex\"\n             , Html.Attributes.style \"flex-direction\" \"column\"\n             ]\n                ++ attrs\n            )\n\n","type":"List.List (Html.Attribute msg) -> List.List (Html.Html msg) -> Html.Html msg"},{"name":"container","comment":" Fills the entire screen. Should be the outer most element.\n\n    container attrs =\n        el\n            ([ Html.Attributes.style \"width\" \"100%\"\n             , Html.Attributes.style \"height\" \"100%\"\n             , Html.Attributes.style \"position\" \"absolute\"\n             , Html.Attributes.style \"left\" \"0px\"\n             , Html.Attributes.style \"top\" \"0px\"\n             ]\n                ++ attrs\n            )\n\n","type":"List.List (Html.Attribute msg) -> Html.Html msg -> Html.Html msg"},{"name":"contentAtEnd","comment":"\n\n    contentAtEnd =\n        Html.Attributes.style \"justify-content\" \"flex-end\"\n\n","type":"Html.Attribute msg"},{"name":"contentAtStart","comment":"\n\n    contentAtStart =\n        Html.Attributes.style \"justify-content\" \"flex-start\"\n\n","type":"Html.Attribute msg"},{"name":"contentCentered","comment":"\n\n    contentCentered =\n        Html.Attributes.style \"justify-content\" \"center\"\n\n","type":"Html.Attribute msg"},{"name":"contentWithSpaceBetween","comment":"\n\n    contentWithSpaceBetween =\n        Html.Attributes.style \"justify-content\" \"space-between\"\n\n","type":"Html.Attribute msg"},{"name":"descriptionList","comment":"\n\n    descriptionList attrs content =\n        Html.dl\n            (Html.Attributes.style \"display\" \"flex\" :: attrs)\n            (content\n                |> List.concatMap\n                    (\\{ description, item } ->\n                        [ description |> (\\( a, h ) -> Html.dt a [ h ])\n                        , item |> (\\( a, h ) -> Html.dd a [ h ])\n                        ]\n                    )\n            )\n\n","type":"List.List (Html.Attribute msg) -> List.List { description : ( List.List (Html.Attribute msg), Html.Html msg ), item : ( List.List (Html.Attribute msg), Html.Html msg ) } -> Html.Html msg"},{"name":"el","comment":"\n\n    el attrs content =\n        Html.div\n            (Html.Attributes.style \"display\" \"flex\"\n                :: attrs\n            )\n            [ content ]\n\n","type":"List.List (Html.Attribute msg) -> Html.Html msg -> Html.Html msg"},{"name":"fill","comment":"\n\n    fill =\n        fillPortion 1\n\n","type":"Html.Attribute msg"},{"name":"fillPortion","comment":"\n\n    fillPortion n =\n        Html.Attributes.style \"flex\" (String.fromInt n)\n\n","type":"Basics.Int -> Html.Attribute msg"},{"name":"gap","comment":"\n\n    gap n =\n        Html.Attributes.style \"gap\" (String.fromFloat n ++ \"px\")\n\n","type":"Basics.Float -> Html.Attribute msg"},{"name":"heading1","comment":"\n\n    heading1 attrs content =\n        Html.h1\n            (Html.Attributes.style \"display\" \"flex\" :: attrs)\n            [ content ]\n\n","type":"List.List (Html.Attribute msg) -> Html.Html msg -> Html.Html msg"},{"name":"heading2","comment":"\n\n    heading2 attrs content =\n        Html.h2\n            (Html.Attributes.style \"display\" \"flex\" :: attrs)\n            [ content ]\n\n","type":"List.List (Html.Attribute msg) -> Html.Html msg -> Html.Html msg"},{"name":"heading3","comment":"\n\n    heading3 attrs content =\n        Html.h3\n            (Html.Attributes.style \"display\" \"flex\" :: attrs)\n            [ content ]\n\n","type":"List.List (Html.Attribute msg) -> Html.Html msg -> Html.Html msg"},{"name":"heading4","comment":"\n\n    heading4 attrs content =\n        Html.h4\n            (Html.Attributes.style \"display\" \"flex\" :: attrs)\n            [ content ]\n\n","type":"List.List (Html.Attribute msg) -> Html.Html msg -> Html.Html msg"},{"name":"heading5","comment":"\n\n    heading5 attrs content =\n        Html.h5\n            (Html.Attributes.style \"display\" \"flex\" :: attrs)\n            [ content ]\n\n","type":"List.List (Html.Attribute msg) -> Html.Html msg -> Html.Html msg"},{"name":"heading6","comment":"\n\n    heading6 attrs content =\n        Html.h6\n            (Html.Attributes.style \"display\" \"flex\" :: attrs)\n            [ content ]\n\n","type":"List.List (Html.Attribute msg) -> Html.Html msg -> Html.Html msg"},{"name":"horizontalRuler","comment":"\n\n    horizontalRuler attrs =\n        Html.hr attrs []\n\n","type":"List.List (Html.Attribute msg) -> Html.Html msg"},{"name":"image","comment":"\n\n    image attrs args =\n        Html.img\n            ([ Html.Attributes.src args.src\n             , Html.Attributes.alt args.description\n             ]\n                ++ attrs\n            )\n            []\n\n","type":"List.List (Html.Attribute msg) -> { src : String.String, description : String.String } -> Html.Html msg"},{"name":"lineBreak","comment":"\n\n    lineBreak =\n        Html.br [] []\n\n","type":"Html.Html msg"},{"name":"linkTo","comment":"\n\n    linkTo attrs link content =\n        Html.a\n            (Html.Attributes.href link\n                :: attrs\n            )\n            [ content ]\n\n","type":"List.List (Html.Attribute msg) -> String.String -> Html.Html msg -> Html.Html msg"},{"name":"linkToNewTab","comment":"\n\n    linkToNewTab attrs link content =\n        Html.a\n            ([ Html.Attributes.href link\n             , Html.Attributes.target \"_blank\"\n             ]\n                ++ attrs\n            )\n            [ content ]\n\n","type":"List.List (Html.Attribute msg) -> String.String -> Html.Html msg -> Html.Html msg"},{"name":"noWrap","comment":"\n\n    noWrap =\n        Html.Attributes.style \"flex-wrap\" \"nowrap\"\n\n","type":"Html.Attribute msg"},{"name":"none","comment":"\n\n    none =\n        Html.text \"\"\n\n","type":"Html.Html msg"},{"name":"orderedList","comment":"\n\n    orderedList attrs content =\n        Html.ol\n            (Html.Attributes.style \"display\" \"flex\" :: attrs)\n            (content\n                |> List.map (\\( a, h ) -> Html.li a [ h ])\n            )\n\n","type":"List.List (Html.Attribute msg) -> List.List ( List.List (Html.Attribute msg), Html.Html msg ) -> Html.Html msg"},{"name":"paragraph","comment":"\n\n    paragraph attrs content =\n        Html.p\n            (Html.Attributes.style \"display\" \"flex\" :: attrs)\n            [ content ]\n\n","type":"List.List (Html.Attribute msg) -> Html.Html msg -> Html.Html msg"},{"name":"radio","comment":"\n\n    radio attrs args =\n        Html.input\n            ([ Html.Attributes.type_ \"radio\"\n             , Html.Attributes.checked args.checked\n             , Html.Attributes.attribute \"aria-label\" args.label\n             ]\n                ++ attrs\n            )\n            []\n\n","type":"List.List (Html.Attribute msg) -> { onChange : Basics.Bool -> msg, checked : Basics.Bool, label : String.String } -> Html.Html msg"},{"name":"row","comment":"\n\n    row attrs =\n        Html.div\n            ([ Html.Attributes.style \"display\" \"flex\"\n             , Html.Attributes.style \"flex-direction\" \"row\"\n             , Html.Attributes.style \"flex-wrap\" \"wrap\"\n             ]\n                ++ attrs\n            )\n\nWill wrap into the next line if there is not enough space.\n\nIf you don't want this behavior, you can just add `noWrap`:\n\n    unwrappedRow attrs =\n        Layout.row (Layout.noWrap ++ attrs)\n\n","type":"List.List (Html.Attribute msg) -> List.List (Html.Html msg) -> Html.Html msg"},{"name":"sticky","comment":"\n\n    sticky =\n        [ Html.Attributes.style \"position\" \"sticky\"\n        , Html.Attributes.style \"z-index\" \"99999\"\n        ]\n\n","type":"List.List (Html.Attribute msg)"},{"name":"stickyOnBottom","comment":"\n\n    stickyOnBottom =\n        [ Html.Attributes.style \"position\" \"sticky\"\n        , Html.Attributes.style \"bottom\" \"0\"\n        , Html.Attributes.style \"z-index\" \"99999\"\n        ]\n\n","type":"List.List (Html.Attribute msg)"},{"name":"stickyOnTop","comment":"\n\n    stickyOnTop =\n        [ Html.Attributes.style \"position\" \"sticky\"\n        , Html.Attributes.style \"top\" \"0\"\n        , Html.Attributes.style \"z-index\" \"99999\"\n        ]\n\n","type":"List.List (Html.Attribute msg)"},{"name":"text","comment":"\n\n    text : List (Attribute msg) -> String -> Html msg\n    text attrs content =\n        el attrs (Html.text content)\n\n","type":"List.List (Html.Attribute msg) -> String.String -> Html.Html msg"},{"name":"textButton","comment":"\n\n    textButton attrs args =\n        Html.button (asButton args ++ attrs)\n            [ Html.text args.label ]\n\n","type":"List.List (Html.Attribute msg) -> { onPress : Maybe.Maybe msg, label : String.String } -> Html.Html msg"},{"name":"unorderedList","comment":"\n\n    unorderedList attrs content =\n        Html.ul\n            (Html.Attributes.style \"display\" \"flex\" :: attrs)\n            (content\n                |> List.map (\\( a, h ) -> Html.li a [ h ])\n            )\n\n","type":"List.List (Html.Attribute msg) -> List.List ( List.List (Html.Attribute msg), Html.Html msg ) -> Html.Html msg"},{"name":"withStack","comment":" A stack places the content on top of each other. The first element is the lowest.\n\n    withStack : List (Attribute msg) -> List (List (Attribute msg) -> Html msg) -> Html msg -> Html msg\n    withStack attrs list base =\n        list\n            |> List.map\n                (\\fun ->\n                    fun [ Html.Attributes.style \"position\" \"absolute\" ]\n                )\n            |> (::) base\n            |> Html.div\n                ([ Html.Attributes.style \"display\" \"flex\"\n                 , Html.Attributes.style \"position\" \"relative\"\n                 ]\n                    ++ attrs\n                )\n\n","type":"List.List (Html.Attribute msg) -> List.List (List.List (Html.Attribute msg) -> Html.Html msg) -> Html.Html msg -> Html.Html msg"},{"name":"wrap","comment":"\n\n    wrap =\n        Html.Attributes.style \"flex-wrap\" \"wrap\"\n\n","type":"Html.Attribute msg"}],"binops":[]}]