[{"name":"MultiSelect","comment":" A select component for multi selection with local data.\n\n\n# Architecture\n\n@docs SmartSelect, Msg, init, view, viewCustom, subscriptions, update, updatePosition\n\n","unions":[{"name":"Msg","comment":" Opaque type representing cases to be passed to MultiSelect.update\n","args":["a"],"cases":[]},{"name":"SmartSelect","comment":" The opaque type representing a particular smart select instance.\n","args":["msg","a"],"cases":[]}],"aliases":[],"values":[{"name":"init","comment":" Instantiates and returns a smart select.\n\n  - `selectionMsg` takes a function that expects a tuple representing the list of selections and a MultiSelect.Msg and returns an externally defined msg for handling selection.\n  - `internalMsg` takes a function that expects a MultiSelect.Msg and returns an externally defined msg for handling the update of the select.\n  - `idPrefix` takes a string with a unique prefix\n\n","type":"{ selectionMsg : ( List.List a, MultiSelect.Msg a ) -> msg, internalMsg : MultiSelect.Msg a -> msg, idPrefix : String.String } -> MultiSelect.SmartSelect msg a"},{"name":"subscriptions","comment":" Events external to the smart select to which it is subscribed.\n","type":"MultiSelect.SmartSelect msg a -> Platform.Sub.Sub msg"},{"name":"update","comment":" Update the provided smart select and receive the updated select instance and a cmd to run.\n","type":"MultiSelect.Msg a -> MultiSelect.SmartSelect msg a -> ( MultiSelect.SmartSelect msg a, Platform.Cmd.Cmd msg )"},{"name":"updatePosition","comment":" Triggers an update of the provided smart select's alignment\n","type":"MultiSelect.SmartSelect msg a -> ( MultiSelect.SmartSelect msg a, Platform.Cmd.Cmd msg )"},{"name":"view","comment":" The smart select view for selecting multiple options at a time with local data.\n\n  - `selected` takes a list of the currently selected entities.\n  - `options` takes a list of the data being selected from.\n  - `optionLabelFn` takes a function that expects an instance of the data being selected from and returns a string naming/labeling the instance, i.e. if it is a \"Product\" being selected, the label may be \"Garden Hose\".\n  - `viewSelectedOptionFn` takes a function that expects and instance of the data being selected from and returns html to render a selected option.\n  - `settings` takes the settings record (see the `Settings` type)\n\n","type":"{ selected : List.List a, options : List.List a, optionLabelFn : a -> String.String, viewSelectedOptionFn : a -> Html.Html msg, settings : SmartSelect.Settings.Settings } -> MultiSelect.SmartSelect msg a -> Html.Html msg"},{"name":"viewCustom","comment":" The smart select custom view for selecting multiple options at a time with local data. You have to pass a custom configuration here.\n","type":"MultiSelect.Config msg a -> MultiSelect.SmartSelect msg a -> Html.Html msg"}],"binops":[]},{"name":"MultiSelectRemote","comment":" A select component for multi selection with remote data.\n\n\n# Architecture\n\n@docs SmartSelect, Msg, init, view, viewCustom, subscriptions, update, updatePosition\n\n","unions":[{"name":"Msg","comment":" Opaque type representing cases to be passed to MultiSelectRemote.update\n","args":["a"],"cases":[]},{"name":"SmartSelect","comment":" The opaque type representing a particular smart select instance.\n","args":["msg","a"],"cases":[]}],"aliases":[],"values":[{"name":"init","comment":" Instantiates and returns a smart select.\n\n  - `selectionMsg` takes a function that expects a tuple representing the list of selections and a MultiSelectRemote.Msg and returns an externally defined msg for handling selection.\n  - `internalMsg` takes a function that expects a MultiSelectRemote.Msg and returns an externally defined msg.\n  - `idPrefix` takes a string with a unique prefix\n\n","type":"{ selectionMsg : ( List.List a, MultiSelectRemote.Msg a ) -> msg, internalMsg : MultiSelectRemote.Msg a -> msg, idPrefix : String.String } -> MultiSelectRemote.SmartSelect msg a"},{"name":"subscriptions","comment":" Events external to the smart select to which it is subscribed.\n","type":"SmartSelect.Settings.RemoteSettings a -> MultiSelectRemote.SmartSelect msg a -> Platform.Sub.Sub msg"},{"name":"update","comment":" Update the provided smart select and receive the updated select instance and a cmd to run.\n","type":"MultiSelectRemote.Msg a -> SmartSelect.Settings.RemoteSettings a -> MultiSelectRemote.SmartSelect msg a -> ( MultiSelectRemote.SmartSelect msg a, Platform.Cmd.Cmd msg )"},{"name":"updatePosition","comment":" Triggers an update of the provided smart select's alignment\n","type":"MultiSelectRemote.SmartSelect msg a -> ( MultiSelectRemote.SmartSelect msg a, Platform.Cmd.Cmd msg )"},{"name":"view","comment":" The smart select view for selecting multiple options at a time with remote data.\n\n  - `selected` takes a list of the currently selected entities.\n  - `optionLabelFn` takes a function that expects an instance of the data being selected from and returns a string naming/labeling the instance, i.e. if it is a \"Product\" being selected, the label may be \"Garden Hose\".\n  - `viewSelectedOptionFn` takes a function that expects and instance of the data being selected from and returns html to render a selected option.\n  - `remoteSettings` takes the remoteSettings record (see the `RemoteSettings` type)\n\n","type":"{ selected : List.List a, optionLabelFn : a -> String.String, viewSelectedOptionFn : a -> Html.Html msg, remoteSettings : SmartSelect.Settings.RemoteSettings a } -> MultiSelectRemote.SmartSelect msg a -> Html.Html msg"},{"name":"viewCustom","comment":" The smart select custom view for selecting multiple options at a time with remote data. You have to pass a custom configuration here.\n","type":"MultiSelectRemote.Config msg a -> MultiSelectRemote.SmartSelect msg a -> Html.Html msg"}],"binops":[]},{"name":"SingleSelect","comment":" A select component for a single selection with local data.\n\n\n# Architecture\n\n@docs SmartSelect, Msg, init, view, viewCustom, subscriptions, update, updatePosition\n\n","unions":[{"name":"Msg","comment":" Opaque type representing cases to be passed to SingleSelect.update\n","args":["a"],"cases":[]},{"name":"SmartSelect","comment":" The opaque type representing a particular smart select instance.\n","args":["msg","a"],"cases":[]}],"aliases":[],"values":[{"name":"init","comment":" Instantiates and returns a smart select.\n\n  - `selectionMsg` takes a function that expects a tuple representing the selection and a SinglSelect.Msg msg and returns an externally defined msg for handling selection.\n  - `internalMsg` takes a function that expects a SinglSelect.Msg and returns an externally defined msg for handling the update of the select.\n  - `idPrefix` takes a string with a unique prefix\n\n","type":"{ selectionMsg : ( a, SingleSelect.Msg a ) -> msg, internalMsg : SingleSelect.Msg a -> msg, idPrefix : String.String } -> SingleSelect.SmartSelect msg a"},{"name":"subscriptions","comment":" Events external to the smart select to which it is subscribed.\n","type":"SingleSelect.SmartSelect msg a -> Platform.Sub.Sub msg"},{"name":"update","comment":" Update the provided smart select and receive the updated select instance and a cmd to run.\n","type":"SingleSelect.Msg a -> SingleSelect.SmartSelect msg a -> ( SingleSelect.SmartSelect msg a, Platform.Cmd.Cmd msg )"},{"name":"updatePosition","comment":" Triggers an update of the provided smart select's alignment\n","type":"SingleSelect.SmartSelect msg a -> ( SingleSelect.SmartSelect msg a, Platform.Cmd.Cmd msg )"},{"name":"view","comment":" The smart select view for selecting one option at a time with local data.\n\n  - `selected` takes the currently selected entity, if any.\n  - `options` takes a list of the data being selected from.\n  - `optionLabelFn` takes a function that expects an instance of the data being selected from and returns a string naming/labeling the instance, i.e. if it is a \"Product\" being selected, the label may be \"Garden Hose\".\n  - `settings` takes the settings record (see the `Settings` type)\n\n","type":"{ selected : Maybe.Maybe a, options : List.List a, optionLabelFn : a -> String.String, settings : SmartSelect.Settings.Settings } -> SingleSelect.SmartSelect msg a -> Html.Html msg"},{"name":"viewCustom","comment":" The smart select view for selecting one option at a time with local data. You have to pass a custom configuration here.\n","type":"SingleSelect.Config a -> SingleSelect.SmartSelect msg a -> Html.Html msg"}],"binops":[]},{"name":"SingleSelectRemote","comment":" A select component for a single selection with remote data.\n\n\n# Architecture\n\n@docs SmartSelect, Msg, init, view, viewCustom, subscriptions, update, updatePosition\n\n","unions":[{"name":"Msg","comment":" Opaque type representing cases to be passed to SingleSelectRemote.update\n","args":["a"],"cases":[]},{"name":"SmartSelect","comment":" The opaque type representing a particular smart select instance.\n","args":["msg","a"],"cases":[]}],"aliases":[],"values":[{"name":"init","comment":" Instantiates and returns a smart select.\n\n  - `selectionMsg` takes a function that expects a tuple representing the selection and a SinglSelectRemote.Msg msg and returns an externally defined msg for handling selection.\n  - `internalMsg` takes a function that expects a SingleSelectRemote.Msg and returns an externally defined msg.\n  - `idPrefix` takes a string with a unique prefix\n\n","type":"{ selectionMsg : ( a, SingleSelectRemote.Msg a ) -> msg, internalMsg : SingleSelectRemote.Msg a -> msg, idPrefix : String.String } -> SingleSelectRemote.SmartSelect msg a"},{"name":"subscriptions","comment":" Events external to the smart select to which it is subscribed.\n","type":"SmartSelect.Settings.RemoteSettings a -> SingleSelectRemote.SmartSelect msg a -> Platform.Sub.Sub msg"},{"name":"update","comment":" Update the provided smart select and receive the updated select instance and a cmd to run.\n","type":"SingleSelectRemote.Msg a -> SmartSelect.Settings.RemoteSettings a -> SingleSelectRemote.SmartSelect msg a -> ( SingleSelectRemote.SmartSelect msg a, Platform.Cmd.Cmd msg )"},{"name":"updatePosition","comment":" Triggers an update of the provided smart select's alignment\n","type":"SingleSelectRemote.SmartSelect msg a -> ( SingleSelectRemote.SmartSelect msg a, Platform.Cmd.Cmd msg )"},{"name":"view","comment":" The smart select view for selecting one option at a time with remote data.\n\n  - `selected` takes the currently selected entity, if any.\n  - `optionLabelFn` takes a function that expects an instance of the data being selected from and returns a string naming/labeling the instance, i.e. if it is a \"Product\" being selected, the label may be \"Garden Hose\".\n  - `remoteSettings` takes the remoteSettings record (see the `RemoteSettings` type)\n\n","type":"{ selected : Maybe.Maybe a, optionLabelFn : a -> String.String, remoteSettings : SmartSelect.Settings.RemoteSettings a } -> SingleSelectRemote.SmartSelect msg a -> Html.Html msg"},{"name":"viewCustom","comment":" The smart select view for selecting one option at a time with remote data. You have to pass a custom configuration here.\n","type":"SingleSelectRemote.Config a -> SingleSelectRemote.SmartSelect msg a -> Html.Html msg"}],"binops":[]},{"name":"SmartSelect.Settings","comment":" The settings module for all smart select variants\n\n\n# Architecture\n\n@docs Settings, RemoteSettings, RemoteQueryAttrs, Theme, defaultRemoteSettings, defaultSettings, defaultTheme\n\n","unions":[],"aliases":[{"name":"RemoteQueryAttrs","comment":" Fields to be provided to facilitate the external request. The function provided to url takes in searchText in the event it is necessary for the query.\n","args":["a"],"type":"{ headers : List.List Http.Header, url : String.String -> String.String, optionDecoder : Json.Decode.Decoder a }"},{"name":"RemoteSettings","comment":" The type representing the select's remote settings (including the general settings) to be passed to all view & update functions of the remote variants\n","args":["a"],"type":"{ settings : SmartSelect.Settings.Settings, spinnerColor : Color.Color, characterThresholdPrompt : Basics.Int -> String.String, characterSearchThreshold : Basics.Int, debounceDuration : Basics.Float, queryErrorMsg : String.String, queryAttrs : SmartSelect.Settings.RemoteQueryAttrs a }"},{"name":"Settings","comment":" The type representing the select's general settings to be passed to all view functions\n","args":[],"type":"{ theme : SmartSelect.Settings.Theme, isDisabled : Basics.Bool, optionsContainerMaxHeight : Basics.Float, placeholder : String.String, noResultsForMsg : String.String -> String.String, noOptionsMsg : String.String, id : String.String }"},{"name":"Theme","comment":" The type facilitating the Theme with the most important design tokens\n","args":[],"type":"{ fontSize : { base : Css.Px, sm : Css.Px, xs : Css.Px, xxs : Css.Px }, color : { text : { primary : Css.Color, secondary : Css.Color, disabled : Css.Color }, primary : { main : Css.Color, contrastText : Css.Color, light : Css.Color }, error : { main : Css.Color, contrastText : Css.Color, light : Css.Color }, background : { input : Css.Color, optionsContainer : Css.Color }, action : { hover : Css.Color }, border : Css.Color }, size : { iconButton : Css.Px, inputElement : Css.Px }, borderWidth : Css.Px, borderRadius : { base : Css.Px, lg : Css.Px }, boxShadow : { offsetX : Css.Px, offsetY : Css.Px, blurRadius : Css.Px, spreadRadius : Css.Px, color : Css.Color }, transition : { duration : Basics.Float }, classNamePrefix : String.String }"}],"values":[{"name":"defaultRemoteSettings","comment":" A record of default settings for the remote select variants. Extend this if\nyou want to further customize.\n\nRequires the `RemoteQueryAttrs`.\n\n","type":"SmartSelect.Settings.RemoteQueryAttrs a -> SmartSelect.Settings.RemoteSettings a"},{"name":"defaultSettings","comment":" A record of default settings for all the select variants. Extend this if\nyou want to further customize.\n","type":"SmartSelect.Settings.Settings"},{"name":"defaultTheme","comment":" The default theme that is included in the defaultSettings\n","type":"SmartSelect.Settings.Theme"}],"binops":[]}]