[{"name":"Extras.Core","comment":" General convenience functions.\n\n@docs byKey\n@docs flip\n@docs unless\n\n","unions":[],"aliases":[],"values":[{"name":"byKey","comment":" Create a predicate that matches on a specific extracted value.\n\n    > let alice = { id = 1, name = \"Alice\" }\n    |     bob = { id = 2, name = \"Bob\" }\n    |     users =\n    | in List.filter (byKey .id 2) users\n    [{ id = 2, name = \"Bob\" }]\n\n","type":"(a -> b) -> b -> a -> Basics.Bool"},{"name":"flip","comment":" Change the order of the arguments of a two argument function.\n\n    > flip (++) \"Hello\" \"World\"\n    \"WorldHello\" : String\n\n","type":"(a -> b -> c) -> b -> a -> c"},{"name":"unless","comment":" Negated, functional if-then-else.\n\nChecks a condition and returns the respective value.\n\nAllows writing more natural conditional atttributes, elements, etc:\n\n    div [] [ unless isLoggedIn (text \"not logged in\") (a [] [ text \"logout\" ]) ]\n\n","type":"Basics.Bool -> a -> a -> a"}],"binops":[]},{"name":"Extras.List","comment":" Convenience functions for working with lists.\n\nThis module is intended to extend\n[List.Extra](https://package.elm-lang.org/packages/elm-community/list-extra/latest), which should be\nthe first place to look for extra functionality.\n\n@docs upsert\n\n","unions":[],"aliases":[],"values":[{"name":"upsert","comment":" Update or insert one item in a list.\n\nSearches a list for the first matching element and replaces it. If no matches are found, appends the\nelement to the end of the rest.\n\n    upsert (byKey .id newUser.id) newUser users\n\nIf you find yourself using this function often, consider using a\n[Dict](https://package.elm-lang.org/packages/elm/core/latest/Dict) and\n[insert](https://package.elm-lang.org/packages/elm/core/latest/Dict#insert) instead.\n\n","type":"(a -> Basics.Bool) -> a -> List.List a -> List.List a"}],"binops":[]},{"name":"Extras.String","comment":" Conversions to strings that are missing from `elm/core`.\n\n@docs fromBool, fromBoolLowercase\n\n","unions":[],"aliases":[],"values":[{"name":"fromBool","comment":" Convert a Boolean to its Elm representation.\n\n    fromBool True == \"True\"\n\n    fromBool False == \"False\"\n\n","type":"Basics.Bool -> String.String"},{"name":"fromBoolLowercase","comment":" Convert a Boolean to its lowercase representation.\n\n    fromBoolLowercase True == \"true\"\n\n    fromBoolLowercase False == \"false\"\n\n","type":"Basics.Bool -> String.String"}],"binops":[]},{"name":"Extras.Svg","comment":" Conditional rendering helpers for `Svg.Svg`.\n\nThe names follow the corresponding functions in\n[`Html.Extra`](https://package.elm-lang.org/packages/elm-community/html-extra/latest/Html.Extra).\n\n@docs nothing, viewIf, viewMaybe\n\n","unions":[],"aliases":[],"values":[{"name":"nothing","comment":" Empty SVG content.\n","type":"Svg.Svg msg"},{"name":"viewIf","comment":" Render SVG content when the condition is true.\n\n    viewIf showLabel (text \"Label\")\n\n","type":"Basics.Bool -> Svg.Svg msg -> Svg.Svg msg"},{"name":"viewMaybe","comment":" Render a present value as SVG content.\n\n    viewMaybe viewIcon selectedIcon\n\n","type":"(a -> Svg.Svg msg) -> Maybe.Maybe a -> Svg.Svg msg"}],"binops":[]},{"name":"Extras.Svg.Attributes","comment":" Conditional rendering helpers for `Svg.Attribute`.\n\nThe names follow the corresponding functions in\n[`Html.Attributes.Extra`](https://package.elm-lang.org/packages/elm-community/html-extra/latest/Html.Attributes.Extra).\n\n@docs empty, attributeIf, attributeMaybe\n\n","unions":[],"aliases":[],"values":[{"name":"attributeIf","comment":" Render an SVG attribute when the condition is true.\n\n    attributeIf isActive (class \"active\")\n\n","type":"Basics.Bool -> Svg.Attribute msg -> Svg.Attribute msg"},{"name":"attributeMaybe","comment":" Render a present value as an SVG attribute.\n\n    attributeMaybe id selectedId\n\n","type":"(a -> Svg.Attribute msg) -> Maybe.Maybe a -> Svg.Attribute msg"},{"name":"empty","comment":" Empty SVG attribute.\n","type":"Svg.Attribute msg"}],"binops":[]}]