[{"name":"Prima.Pyxis.Accordion","comment":" Creates an Accordion component by using predefined Html syntax.\n\n\n# Configuration\n\n@docs Config, State\n\n\n# Configuration Helpers\n\n@docs baseConfig, lightConfig, darkConfig, state\n\n\n# Helpers\n\n@docs open, close\n\n\n# Render\n\n@docs render, renderGroup\n\n","unions":[{"name":"Config","comment":" Represents the static configuration of the component. Values\npassed in are no more modified by the setter.\n","args":["msg"],"cases":[]},{"name":"State","comment":" Represents the state of the component. Values passed in are\nsusceptible to change.\n","args":["msg"],"cases":[]}],"aliases":[],"values":[{"name":"baseConfig","comment":" Returns the configuration for a Base accordion skin.\n\n    ...\n\n    type alias Slug =\n        String\n\n    type Msg =\n        Toggled Slug Bool\n\n    ...\n\n    myAccordionConfig : Accordion.Config\n    myAccordionConfig =\n    let\n        slug =\n            \"my_accordion_slug\"\n\n        tagger =\n            Toggled\n    in\n        Accordion.baseConfig slug tagger\n\n    ...\n\n","type":"String.String -> (String.String -> Basics.Bool -> msg) -> Prima.Pyxis.Accordion.Config msg"},{"name":"close","comment":" Closes the Accordion to hide it's content.\n\n    updatedAccordionState =\n        Accordion.close myAccordionState\n\n","type":"Prima.Pyxis.Accordion.State msg -> Prima.Pyxis.Accordion.State msg"},{"name":"darkConfig","comment":" The same as baseConfig but with a Dark skin.\n","type":"String.String -> (String.String -> Basics.Bool -> msg) -> Prima.Pyxis.Accordion.Config msg"},{"name":"lightConfig","comment":" The same as baseConfig but with a Light skin.\n","type":"String.String -> (String.String -> Basics.Bool -> msg) -> Prima.Pyxis.Accordion.Config msg"},{"name":"open","comment":" Opens the Accordion to reveal it's content.\n\n    updatedAccordionState =\n        Accordion.open myAccordionState\n\n","type":"Prima.Pyxis.Accordion.State msg -> Prima.Pyxis.Accordion.State msg"},{"name":"render","comment":" Renders the Accordion component by receiving is State and Config.\n\n    Accordion.render myAccordionState myAccordionConfiguration\n\n","type":"Prima.Pyxis.Accordion.State msg -> Prima.Pyxis.Accordion.Config msg -> Html.Html msg"},{"name":"renderGroup","comment":" Renders a group of Accordion(s) inside an AccordionGroup.\n\n    Accordion.renderGroup\n        [ ( myAccordionState1, myAccordionConfiguration1 )\n        , ( myAccordionState2, myAccordionConfiguration2 )\n        , ( myAccordionState3, myAccordionConfiguration3 )\n        ]\n\n","type":"List.List ( Prima.Pyxis.Accordion.State msg, Prima.Pyxis.Accordion.Config msg ) -> Html.Html msg"},{"name":"state","comment":" Returns the basic state of the component.\n\n    ...\n\n    myAccordionState : Accordion.State\n    myAccordionState =\n        let\n            isOpen =\n                False\n\n            title =\n                \"My title\"\n\n            content =\n                (List.singleton <<  text) \"Lorem ipsum dolor sit amet.\"\n        in\n        Accordion.state isOpen title content\n\n    ...\n\n","type":"Basics.Bool -> String.String -> List.List (Html.Html msg) -> Prima.Pyxis.Accordion.State msg"}],"binops":[]},{"name":"Prima.Pyxis.AtrTable","comment":" Creates a specific kind of table, the ATR table component.\nUses Prima.Pyxis.Table.Table under the hood.\n\nWarning. This documentation requires knownledge of Insurance domain.\n\n\n# Configuration\n\n@docs Config, AtrDetail, Msg\n\n\n# Configuration Helpers\n\n@docs init, atr, update\n\n\n# Helpers\n\n@docs paritaria, paritariaMista, paritariaCose, paritariaPersone, principale, principaleMista, principaleCose, principalePersone\n\n\n# Render\n\n@docs render\n\n","unions":[{"name":"AtrDetail","comment":" Represents a detail for an ATR which contains information about\nthe number of accidents in a specific year.\n","args":[],"cases":[]},{"name":"Config","comment":" Defines the configuration of an Atr table\n","args":[],"cases":[]},{"name":"Msg","comment":" Represents a changing AtrDetail action\n","args":[],"cases":[]}],"aliases":[],"values":[{"name":"atr","comment":" Creates an empty AtrDetail. Each detail is identified by an year and representation of accidents occurred\nduring it. All setters methods are pipeable.\n","type":"Basics.Int -> Prima.Pyxis.AtrTable.AtrDetail"},{"name":"init","comment":" Returns a Tuple containing the Config and a possible batch of side effects to\nbe managed by parent application. Requires a list of AtrDetail.\n","type":"Basics.Bool -> List.List ( String.String, Basics.Bool ) -> List.List Prima.Pyxis.AtrTable.AtrDetail -> ( Prima.Pyxis.AtrTable.Config, Platform.Cmd.Cmd Prima.Pyxis.AtrTable.Msg )"},{"name":"paritaria","comment":" Sets the Responsabilità Paritaria value for a specific AtrDetail.\n","type":"Maybe.Maybe String.String -> Prima.Pyxis.AtrTable.AtrDetail -> Prima.Pyxis.AtrTable.AtrDetail"},{"name":"paritariaCose","comment":" Sets the Responsabilità Paritaria Cose value for a specific AtrDetail.\n","type":"Maybe.Maybe String.String -> Prima.Pyxis.AtrTable.AtrDetail -> Prima.Pyxis.AtrTable.AtrDetail"},{"name":"paritariaMista","comment":" Sets the Responsabilità Paritaria Mista value for a specific AtrDetail.\n","type":"Maybe.Maybe String.String -> Prima.Pyxis.AtrTable.AtrDetail -> Prima.Pyxis.AtrTable.AtrDetail"},{"name":"paritariaPersone","comment":" Sets the Responsabilità Paritaria Persone value for a specific AtrDetail.\n","type":"Maybe.Maybe String.String -> Prima.Pyxis.AtrTable.AtrDetail -> Prima.Pyxis.AtrTable.AtrDetail"},{"name":"principale","comment":" Sets the Responsabilità Principale value for a specific AtrDetail.\n","type":"Maybe.Maybe String.String -> Prima.Pyxis.AtrTable.AtrDetail -> Prima.Pyxis.AtrTable.AtrDetail"},{"name":"principaleCose","comment":" Sets the Responsabilità Principale Cose value for a specific AtrDetail.\n","type":"Maybe.Maybe String.String -> Prima.Pyxis.AtrTable.AtrDetail -> Prima.Pyxis.AtrTable.AtrDetail"},{"name":"principaleMista","comment":" Sets the Responsabilità Principale Mista value for a specific AtrDetail.\n","type":"Maybe.Maybe String.String -> Prima.Pyxis.AtrTable.AtrDetail -> Prima.Pyxis.AtrTable.AtrDetail"},{"name":"principalePersone","comment":" Sets the Responsabilità Principale Persone value for a specific AtrDetail.\n","type":"Maybe.Maybe String.String -> Prima.Pyxis.AtrTable.AtrDetail -> Prima.Pyxis.AtrTable.AtrDetail"},{"name":"render","comment":" Renders the table by receiving a Configuration. The columns of this table are expressed by the length of the AtrDetail list.\n","type":"Prima.Pyxis.AtrTable.Config -> Html.Html Prima.Pyxis.AtrTable.Msg"},{"name":"update","comment":" Updates the configuration of the Atr table.\nReturns a tuple containing the new Config.\n","type":"Prima.Pyxis.AtrTable.Msg -> Prima.Pyxis.AtrTable.Config -> ( Prima.Pyxis.AtrTable.Config, Platform.Cmd.Cmd Prima.Pyxis.AtrTable.Msg, List.List Prima.Pyxis.AtrTable.AtrDetail )"}],"binops":[]},{"name":"Prima.Pyxis.Button","comment":" Allows to create a `Button` using predefined Html syntax.\n\n\n# Configuration\n\n@docs Config, Emphasis, Scheme\n\n\n# Configuration Helpers\n\n@docs callOut, callOutSmall, primary, primarySmall, secondary, secondarySmall, tertiary, tertiarySmall\n\n\n# Rendering\n\n@docs render, group, groupFluid\n\n","unions":[{"name":"Config","comment":" Represents the configuration of the button.\n","args":["msg"],"cases":[]},{"name":"Emphasis","comment":" Represents the visual weight of the button.\n","args":[],"cases":[]},{"name":"Scheme","comment":" Represents the color scheme used to render the button.\n","args":[],"cases":[["Brand",[]],["BrandDark",[]]]}],"aliases":[],"values":[{"name":"callOut","comment":" Creates a button with a `Primary` visual weight and a `default size`.\n\n    --\n\n    import Prima.Pyxis.Button as Button\n\n    type Msg =\n        Clicked\n\n    ...\n\n    myBtn : Button.Config Msg\n    myBtn =\n        Button.callOut Button.Brand \"Click me!\" Clicked\n\n","type":"Prima.Pyxis.Button.Scheme -> String.String -> msg -> Prima.Pyxis.Button.Config msg"},{"name":"callOutSmall","comment":" Creates a button with a `CallOut` visual weight and a `small size`.\n","type":"Prima.Pyxis.Button.Scheme -> String.String -> msg -> Prima.Pyxis.Button.Config msg"},{"name":"group","comment":" Creates a button wrapper which can hold a set of `Button`s.\n\n    --\n\n    import Prima.Pyxis.Button as Button\n\n    type Msg =\n        Clicked\n\n    ...\n\n    ctaBtn : Button.Config Msg\n    ctaBtn =\n        Button.callOut Button.brand \"Click me!\" Clicked isDisabled\n\n\n    primaryBtn : Button.Config Msg\n    primaryBtn =\n        Button.primary Button.brand \"Click me!\" Clicked isDisabled\n\n    ...\n\n    view : Html Msg\n    view =\n        let\n            isCtaBtnEnabled =\n                True\n\n            isPrimaryBtnEnabled =\n                True\n        in\n        Button.group [(isCtaBtnEnabled, ctaBtn), (isPrimaryBtnEnabled, primaryBtn)]\n\n","type":"List.List ( Basics.Bool, Prima.Pyxis.Button.Config msg ) -> Html.Html msg"},{"name":"groupFluid","comment":" Creates a button wrapper which can hold a set of fluid `Button`s.\n","type":"List.List ( Basics.Bool, Prima.Pyxis.Button.Config msg ) -> Html.Html msg"},{"name":"primary","comment":" Creates a button with a `Primary` visual weight and a `default size`.\n","type":"Prima.Pyxis.Button.Scheme -> String.String -> msg -> Prima.Pyxis.Button.Config msg"},{"name":"primarySmall","comment":" Creates a button with a `Primary` visual weight and a `small size`.\n","type":"Prima.Pyxis.Button.Scheme -> String.String -> msg -> Prima.Pyxis.Button.Config msg"},{"name":"render","comment":" Renders the button by receiving it's configuration.\n\n    --\n\n    import Prima.Pyxis.Button as Button\n\n    type Msg =\n        Clicked\n\n    ...\n\n    myBtn : Button.Config Msg\n    myBtn =\n        Button.callOut Button.Brand \"Click me!\" Clicked isDisabled\n\n    ...\n\n    view : Html Msg\n    view =\n        let\n            isEnabled =\n                True\n        in\n        Button.render isEnabled myBtn\n\n","type":"Basics.Bool -> Prima.Pyxis.Button.Config msg -> Html.Html msg"},{"name":"secondary","comment":" Creates a button with a `Secondary` visual weight and a `default size`.\n","type":"Prima.Pyxis.Button.Scheme -> String.String -> msg -> Prima.Pyxis.Button.Config msg"},{"name":"secondarySmall","comment":" Creates a button with a `Secondary` visual weight and a `small size`.\n","type":"Prima.Pyxis.Button.Scheme -> String.String -> msg -> Prima.Pyxis.Button.Config msg"},{"name":"tertiary","comment":" Creates a button with a `Tertiary` visual weight and a `default size`.\n","type":"Prima.Pyxis.Button.Scheme -> String.String -> msg -> Prima.Pyxis.Button.Config msg"},{"name":"tertiarySmall","comment":" Creates a button with a `Tertiary` visual weight and a `small size`.\n","type":"Prima.Pyxis.Button.Scheme -> String.String -> msg -> Prima.Pyxis.Button.Config msg"}],"binops":[]},{"name":"Prima.Pyxis.Container","comment":" Creates a Container component by using predefined Html syntax.\n\n\n# Ready to use\n\n@docs fluid, default\n\n\n# Custom\n\n@docs Modifier, defaultWithModifiers, fluidWithModifiers, custom\n\n","unions":[{"name":"Modifier","comment":" Represents a list of modifiers which can be applied to the container itself.\n\nUse `RowDirection | ColumnDirection` to manage `flex-direction`.\n\nUse `OnBPXsmall | OnBPSmall | OnBPMedium | OnBPLarge | OnBPXlarge` to transform a `fluid` Container in a `default` one in a specific Breakpoint (BP).\n\nUse `FluidOnBPXsmall | FluidOnBPSmall | FluidOnBPMedium | FluidOnBPLarge | FluidOnBPXlarge` to transform a `default` Container in a `fluid` one in a specific Breakpoint (BP).\n\n","args":[],"cases":[["RowDirection",[]],["ColumnDirection",[]],["OnBPXsmall",[]],["OnBPSmall",[]],["OnBPMedium",[]],["OnBPLarge",[]],["OnBPXlarge",[]],["FluidOnBPXsmall",[]],["FluidOnBPSmall",[]],["FluidOnBPMedium",[]],["FluidOnBPLarge",[]],["FluidOnBPXlarge",[]]]}],"aliases":[],"values":[{"name":"custom","comment":" Renders a completely customizable container.\n\n    Container.custom [ \"my-custom-class\", \"a-container\" ] [ ColumnDirection, FluidOnBpXSmall ] [ text \"Lorem ipsum dolor sit amet.\" ]\n\n","type":"List.List String.String -> List.List Prima.Pyxis.Container.Modifier -> List.List (Html.Html msg) -> Html.Html msg"},{"name":"default","comment":" Renders a `default` Container\n","type":"List.List (Html.Html msg) -> Html.Html msg"},{"name":"defaultWithModifiers","comment":" Renders a `default` Container but with some `Modifier`(s) to manage it's appearance in specific Breakpoints (BP)\n","type":"List.List Prima.Pyxis.Container.Modifier -> List.List (Html.Html msg) -> Html.Html msg"},{"name":"fluid","comment":" Renders a `fluid` Container\n","type":"List.List (Html.Html msg) -> Html.Html msg"},{"name":"fluidWithModifiers","comment":" Renders a `fluid` Container but with some `Modifier`(s) to manage it's appearance in specific Breakpoints (BP)\n","type":"List.List Prima.Pyxis.Container.Modifier -> List.List (Html.Html msg) -> Html.Html msg"}],"binops":[]},{"name":"Prima.Pyxis.DatePicker","comment":"\n\n@docs init, Model, Msg, update, view, selectedDate\n\n","unions":[{"name":"Msg","comment":" ","args":[],"cases":[["Noop",[]],["YearSelection",[]],["DaySelection",[]],["PrevMonth",[]],["NextMonth",[]],["SelectYear",["Basics.Int"]],["SelectDay",["Basics.Int"]]]}],"aliases":[{"name":"Model","comment":" ","args":[],"type":"{ date : Date.Date, selectingYear : Basics.Bool, daysPickerRange : ( Date.Date, Date.Date ) }"}],"values":[{"name":"init","comment":" Get initial time picker model\n","type":"Date.Date -> ( Date.Date, Date.Date ) -> Prima.Pyxis.DatePicker.Model"},{"name":"selectedDate","comment":" Returns currently selected date\n","type":"Prima.Pyxis.DatePicker.Model -> Date.Date"},{"name":"update","comment":" ","type":"Prima.Pyxis.DatePicker.Msg -> Prima.Pyxis.DatePicker.Model -> Prima.Pyxis.DatePicker.Model"},{"name":"view","comment":" ","type":"Prima.Pyxis.DatePicker.Model -> Html.Html Prima.Pyxis.DatePicker.Msg"}],"binops":[]},{"name":"Prima.Pyxis.Form","comment":" Allows to create a Form and it's fields using predefined Html syntax.\n\n\n# Form Configuration\n\n@docs Form, Label, Slug, Value\n\n\n# Form Configuration Helpers\n\n@docs init, setAsTouched, setAsSubmitted, addField, addFieldList, addCustomRow\n\n\n# Form State Helpers\n\n@docs isFormSubmitted, isFormPristine, isFormTouched\n\n\n# InputGroup\n\n@docs prepend, append\n\n\n# Validation Visibility Policy\n\n@docs ValidationVisibilityPolicy\n\n\n# Form Validation Visibility Policy Helpers\n\n@docs pickValidationVisibilityPolicy, validateAlways, validateWhenSubmitted\n\n\n# Fields Configuration\n\n@docs FormField, addTooltipToFieldWhen\n\n\n# FieldList Configuration\n\n@docs FormFieldList, fieldListConfig, addTooltipToFieldListWhen\n\n\n# Input\n\n@docs textConfig, passwordConfig, textareaConfig\n\n\n# Checkbox\n\n@docs checkboxConfig, checkboxOption\n\n\n# Radio\n\n@docs radioConfig, radioOption\n\n\n# Select\n\n@docs selectConfig, selectOption\n\n\n# Datepicker\n\n@docs datepickerConfig\n\n\n# Autocomplete\n\n@docs autocompleteConfig, autocompleteOption\n\n\n# Pure Html\n\n@docs pureHtmlConfig\n\n\n# FormField Helpers\n\n@docs fieldIsValid, fieldHasError, fieldHasWarning, fieldIsPristine, fieldIsTouched\n\n\n# FormFieldList Helpers\n\n@docs fieldListIsValid, fieldListHasError, fieldListHasOwnError, fieldListHasFieldError, fieldListHasWarning, fieldListHasOwnWarning, fieldListHasFieldWarning\n\n\n# Render\n\n@docs render, renderField, renderFieldList\n\n","unions":[{"name":"Form","comment":" Public Form data type, it can be created with init function\n","args":["model","msg"],"cases":[]},{"name":"FormField","comment":" Represents the configuration of a single form field.\n","args":["model","msg"],"cases":[]},{"name":"FormFieldList","comment":" It's a collection of form fields rendered together in a single row\n","args":["model","msg"],"cases":[]},{"name":"ValidationVisibilityPolicy","comment":"\n\n\n## Specify when the form will show validations.\n\n  - `Always:` validations display will depend only on validation function result.\n  - `WhenSubmitted`: validations will be shown only after setAsSubmitted have been called\n\n","args":[],"cases":[["Always",[]],["WhenSubmitted",[]]]}],"aliases":[{"name":"Label","comment":" Alias for String. Useful to have easy-to-read signatures.\n","args":[],"type":"String.String"},{"name":"Slug","comment":" Alias for String. Useful to have easy-to-read signatures.\n","args":[],"type":"String.String"},{"name":"Value","comment":" Alias for String. Useful to have easy-to-read signatures.\n","args":[],"type":"String.String"}],"values":[{"name":"addCustomRow","comment":" Adds a custom Html msg in a form. It's not wrapped in a-form-field and doesn't provide validations\n","type":"Html.Html msg -> Prima.Pyxis.Form.Form model msg -> Prima.Pyxis.Form.Form model msg"},{"name":"addField","comment":" Adds a FormField to the form.\n\n    --\n    import Prima.Pyxis.Form as Form\n    import Prima.Pyxis.Form.Event as Event\n    import Prima.Pyxis.Form.Validation as FormValidation\n\n    ...\n\n    type alias Model =\n        { data : FormData\n        , form : Form FormData Msg\n        }\n\n    type alias FormData =\n        { username : Maybe String\n        }\n\n    type Msg\n        = UpdateUsername (Maybe String)\n\n    ...\n\n    usernameField : FormField FormData Msg\n    usernameField =\n        Form.textConfig\n            -- Field Slug\n            \"username\"\n            -- Label\n            (Just \"Username\")\n            -- Data attributes\n            [ minlength 3, maxlength 12 ]\n            -- FormData accessor\n            .username\n            -- Event -> Msg mappings\n            [ Event.onInput UpdateUsername ]\n            -- Form Validations\n            [ FormValidation.config FormValidation.Error\n              (\\formData -> Maybe.withDefault False <| Maybe.map ((<) 3 << String.length) formData.username)\n              \"Username must be greater than 3 digits\"\n            ]\n\n    ...\n\n    view : Model -> Html Msg\n    view ({ form } as model) =\n        form\n            |> Form.addField usernameField\n            |> Form.render\n\n","type":"Prima.Pyxis.Form.FormField model msg -> Prima.Pyxis.Form.Form model msg -> Prima.Pyxis.Form.Form model msg"},{"name":"addFieldList","comment":" Adds a Field Group to the form\n\n    --\n    ...\n    formFieldList : FormFieldList FormData Msg\n    formFieldList =\n        Form.fieldListConfig\n            -- Field Group label\n            \"Username & Alternative Username\"\n            -- Field Group FormFields\n            [ username, alternativeUsername ]\n            -- Field Group own validations\n            [ FormValidation.config FormValidation.Warning\n                (\\formData -> not (formData.username == formData.alternativeUsername))\n                \"Username and password shouldn't be equal\"\n            ]\n    ...\n    view : Model -> Html Msg\n    view ({ form } as model) =\n        form\n            |> Form.addFieldList formFieldList\n            |> Form.render\n\n","type":"Prima.Pyxis.Form.FormFieldList model msg -> Prima.Pyxis.Form.Form model msg -> Prima.Pyxis.Form.Form model msg"},{"name":"addTooltipToFieldListWhen","comment":" Adds a Pyxis tooltip to a given Field List\n","type":"Basics.Bool -> Prima.Pyxis.Tooltip.Config msg -> Prima.Pyxis.Form.FormFieldList model msg -> Prima.Pyxis.Form.FormFieldList model msg"},{"name":"addTooltipToFieldWhen","comment":" Adds a Pyxis tooltip to a given FormField\n","type":"Basics.Bool -> Prima.Pyxis.Tooltip.Config msg -> Prima.Pyxis.Form.FormField model msg -> Prima.Pyxis.Form.FormField model msg"},{"name":"append","comment":" Creates an InputGroup appending a given List(Html msg) to a given FormField\n\n    --\n    ...\n    dateOfBirth : FormData -> Html Msg -> Form.InputGroup FormData Msg\n    dateOfBirth { isVisibleDP, dateOfBirthDP } appendable =\n        Form.datepickerConfig\n            \"date\\_of\\_birth\"\n            (Just \"Date of Birth\")\n            []\n            .dateOfBirth\n            (UpdateDatePicker DateOfBirth)\n            [ Event.onInput (UpdateField DateOfBirth) ]\n            dateOfBirthDP\n            isVisibleDP\n            [ FormValidation.config FormValidation.Error\n            (\\formData -> not (formData.dateOfBirth == Nothing))\n            \"You must select a date\"\n            ]\n            |> Form.append [ appendable ]\n\n","type":"List.List (Html.Html msg) -> Prima.Pyxis.Form.FormField model msg -> Prima.Pyxis.Form.FormField model msg"},{"name":"autocompleteConfig","comment":" Creates an autocomplete field.\nThis field can handle only onSelect, onAutocompleteFilter, onFocus and onBlur events. Other events will be ignored.\n\n    --\n    import Prima.Pyxis.Form as Form exposing (FormField)\n    import Prima.Pyxis.Form.Event as Event\n    import Tuple\n    ...\n\n    type alias Msg\n        = OnSelect (Maybe String)\n        | OnFilter (Maybe String)\n\n    type alias Model =\n        { empireFilter : Maybe String\n        , empire : Maybe String\n        , isOpen : Bool\n        }\n\n    ...\n\n    empire : Model -> FormField Model Msg\n    empire model =\n        let\n            filter : String\n            filter =\n                Maybe.withDefault \"\" model.empireFilter\n\n            options : List AutocompleteOption\n            options =\n                [ (\"Roman Empire\", \"roman\")\n                , (\"Ottoman Empire\", \"ottoman\")\n                , (\"French Empire\", \"french\")\n                , (\"British Empire\", \"british\")\n                ]\n                |> List.filter (String.contains filter << Tuple.first)\n                |> List.map (\\(label, slug) -> Form.autocompleteOption label slug)\n        in\n        Form.autocompleteConfig\n            \"empire\"\n            (Just \"empire\")\n            model.isOpen\n            (Just \"No results\")\n            []\n            .empireFilter\n            .empire\n            [ Event.onAutocompleteFilter OnFilter, Event.onSelect OnSelect ]\n            options\n            []\n\n","type":"String.String -> Maybe.Maybe String.String -> Basics.Bool -> Maybe.Maybe String.String -> List.List (Html.Attribute msg) -> (model -> Maybe.Maybe Prima.Pyxis.Form.Value) -> (model -> Maybe.Maybe Prima.Pyxis.Form.Value) -> List.List (Prima.Pyxis.Form.Event.Event msg) -> List.List Prima.Pyxis.Form.AutocompleteOption -> List.List (Prima.Pyxis.Form.Validation.Validation model) -> Prima.Pyxis.Form.FormField model msg"},{"name":"autocompleteOption","comment":" Creates an autocomplete option.\n","type":"Prima.Pyxis.Form.Label -> Prima.Pyxis.Form.Slug -> Prima.Pyxis.Form.AutocompleteOption"},{"name":"checkboxConfig","comment":" Creates a checkbox field.\nThis field can handle only onCheck event. Other events will be ignored.\n\n    --\n    import Prima.Pyxis.Form as Form exposing (FormField, Label, Slug, CheckboxOption)\n    import Prima.Pyxis.Form.Event as Event\n    import Prima.Pyxis.Form.Validation as FormValidation\n\n    ...\n\n    type alias Msg\n        = OnCheck ( Slug, Bool )\n\n    type alias Model =\n        { country : Maybe String\n        , countries: List (Label, Slug, Bool)\n        }\n\n    ...\n\n    countries : Model -> FormField Model Msg\n    countries model =\n        let\n            reader : (Model -> List (Slug, Bool))\n            reader =\n                (List.map (\\( _, slug, checked ) -> ( slug, checked )) << .countries)\n\n            options : List CheckboxOption\n            options =\n                List.map (( label, slug, isChecked ) -> Form.checkboxOption label slug isChecked) model.countries\n        in\n        Form.checkboxConfig\n            \"countries\"\n            (Just \"Countries\")\n            []\n            reader\n            [ Event.onCheck OnCheck ]\n            options\n            []\n\n","type":"Prima.Pyxis.Form.Slug -> Maybe.Maybe Prima.Pyxis.Form.Label -> List.List (Html.Attribute msg) -> (model -> List.List ( Prima.Pyxis.Form.Slug, Basics.Bool )) -> List.List (Prima.Pyxis.Form.Event.Event msg) -> List.List Prima.Pyxis.Form.CheckboxOption -> List.List (Prima.Pyxis.Form.Validation.Validation model) -> Prima.Pyxis.Form.FormField model msg"},{"name":"checkboxOption","comment":" Creates a checkbox option.\n","type":"Prima.Pyxis.Form.Label -> Prima.Pyxis.Form.Slug -> Basics.Bool -> Prima.Pyxis.Form.CheckboxOption"},{"name":"datepickerConfig","comment":" Creates a datepicker field.\nThis field can handle only onInput event. Other events will be ignored.\n\n    --\n    import Prima.Pyxis.Form as Form exposing (FormField)\n    import Prima.Pyxis.Form.Event as Event\n    import Prima.Pyxis.DatePicker as DatePicker\n    ...\n\n    type alias Msg\n        = OnInput (Maybe String)\n        | OnDatePickerChange DatePicker.Msg\n\n    type alias Model =\n        { datePicker : DatePicker.Model\n        , birthDate : Maybe String\n        , isDatePickerOpen : Bool\n        }\n\n    ...\n\n    dateOfBirth : Model -> FormField Model Msg\n    dateOfBirth model =\n        Form.datepickerConfig\n            \"birthdate\"\n            (Just \"Date of Birth\")\n            []\n            .birthDate\n            OnDatePickerChange\n            [ Event.onInput OnInput ]\n            model.datePicker\n            model.isDatePickerOpen\n            []\n\n","type":"Prima.Pyxis.Form.Slug -> Maybe.Maybe Prima.Pyxis.Form.Label -> List.List (Html.Attribute msg) -> (model -> Maybe.Maybe Prima.Pyxis.Form.Value) -> (Prima.Pyxis.DatePicker.Msg -> msg) -> List.List (Prima.Pyxis.Form.Event.Event msg) -> Prima.Pyxis.DatePicker.Model -> Basics.Bool -> List.List (Prima.Pyxis.Form.Validation.Validation model) -> Prima.Pyxis.Form.FormField model msg"},{"name":"fieldHasError","comment":" Checks if a given field has errors\n","type":"model -> Prima.Pyxis.Form.FormField model msg -> Basics.Bool"},{"name":"fieldHasWarning","comment":" Checks if a given field has warnings\n","type":"model -> Prima.Pyxis.Form.FormField model msg -> Basics.Bool"},{"name":"fieldIsPristine","comment":" Checks if a given field is in Pristine state (the value in the model is Nothing or empty)\n","type":"model -> Prima.Pyxis.Form.FormField model msg -> Basics.Bool"},{"name":"fieldIsTouched","comment":" Checks if a given field have been provided with some input\n","type":"model -> Prima.Pyxis.Form.FormField model msg -> Basics.Bool"},{"name":"fieldIsValid","comment":" Checks if a given field is valid. All validations are returning True\n","type":"model -> Prima.Pyxis.Form.FormField model msg -> Basics.Bool"},{"name":"fieldListConfig","comment":" Configure a FormFieldList\n","type":"Prima.Pyxis.Form.Label -> List.List (Prima.Pyxis.Form.FormField model msg) -> List.List (Prima.Pyxis.Form.Validation.Validation model) -> Prima.Pyxis.Form.FormFieldList model msg"},{"name":"fieldListHasError","comment":" Checks if a given field group triggers errors (both own and field only ones)\n","type":"model -> Prima.Pyxis.Form.FormFieldList model msg -> Basics.Bool"},{"name":"fieldListHasFieldError","comment":" Checks if a given field group triggers form field errors (not field group ones)\n","type":"model -> Prima.Pyxis.Form.FormFieldList model msg -> Basics.Bool"},{"name":"fieldListHasFieldWarning","comment":" Checks if a given field group triggers form field warnings (not field group ones)\n","type":"model -> Prima.Pyxis.Form.FormFieldList model msg -> Basics.Bool"},{"name":"fieldListHasOwnError","comment":" Checks if a given field group triggers own errors only (not form field ones)\n","type":"model -> Prima.Pyxis.Form.FormFieldList model msg -> Basics.Bool"},{"name":"fieldListHasOwnWarning","comment":" Checks if a given field group triggers own warnings only (not form field ones)\n","type":"model -> Prima.Pyxis.Form.FormFieldList model msg -> Basics.Bool"},{"name":"fieldListHasWarning","comment":" Checks if a given field group triggers warnings (both own and field only ones)\n","type":"model -> Prima.Pyxis.Form.FormFieldList model msg -> Basics.Bool"},{"name":"fieldListIsValid","comment":" Checks if a given field group is in valid state\n","type":"model -> Prima.Pyxis.Form.FormFieldList model msg -> Basics.Bool"},{"name":"init","comment":" Creates an empty form with given Validation Visibility Policy in Pristine status (untouched).\n","type":"Prima.Pyxis.Form.ValidationVisibilityPolicy -> Prima.Pyxis.Form.Form model msg"},{"name":"isFormPristine","comment":" Checks if the Form state is Pristine.\n","type":"Prima.Pyxis.Form.Form model msg -> Basics.Bool"},{"name":"isFormSubmitted","comment":" Checks if the Form state is Submitted.\n","type":"Prima.Pyxis.Form.Form model msg -> Basics.Bool"},{"name":"isFormTouched","comment":" Checks if the Form state is Touched.\n","type":"Prima.Pyxis.Form.Form model msg -> Basics.Bool"},{"name":"passwordConfig","comment":" Creates a password text field. Same configuration as `textConfig`.\n","type":"Prima.Pyxis.Form.Slug -> Maybe.Maybe Prima.Pyxis.Form.Label -> List.List (Html.Attribute msg) -> (model -> Maybe.Maybe Prima.Pyxis.Form.Value) -> List.List (Prima.Pyxis.Form.Event.Event msg) -> List.List (Prima.Pyxis.Form.Validation.Validation model) -> Prima.Pyxis.Form.FormField model msg"},{"name":"pickValidationVisibilityPolicy","comment":" Returns form's Validation Visibility Policy\n","type":"Prima.Pyxis.Form.Form model msg -> Prima.Pyxis.Form.ValidationVisibilityPolicy"},{"name":"prepend","comment":" Creates an InputGroup prepending a given List(Html msg) to a given FormField\n\n    --\n    ...\n    dateOfBirth : FormData -> Html Msg -> Form.InputGroup FormData Msg\n    dateOfBirth { isVisibleDP, dateOfBirthDP } prependable =\n        Form.datepickerConfig\n            \"date_of_birth\"\n            (Just \"Date of Birth\")\n            []\n            .dateOfBirth\n            (UpdateDatePicker DateOfBirth)\n            [ Event.onInput (UpdateField DateOfBirth) ]\n            dateOfBirthDP\n            isVisibleDP\n            [ FormValidation.config FormValidation.Error\n                (\\formData -> not (formData.dateOfBirth == Nothing))\n                \"You must select a date\"\n            ]|> Form.prepend [ prependable ]\n\n","type":"List.List (Html.Html msg) -> Prima.Pyxis.Form.FormField model msg -> Prima.Pyxis.Form.FormField model msg"},{"name":"pureHtmlConfig","comment":" Creates a custom rendered FormField.\n\n    --\n    import Prima.Pyxis.Form as Form exposing (FormField)\n\n    ...\n\n    loremIpsum : FormField Model Msg\n    loremIpsum =\n        Form.pureHtmlConfig\n            \"custom-form-field\"\n            [ text \"Lorem ipsum dolor sit amet\" ]\n            []\n\n","type":"String.String -> List.List (Html.Html msg) -> List.List (Prima.Pyxis.Form.Validation.Validation model) -> Prima.Pyxis.Form.FormField model msg"},{"name":"radioConfig","comment":" Creates a radio field.\nThis field can handle only onSelect event. Other events will be ignored.\n\n    --\n    import Prima.Pyxis.Form as Form exposing (FormField, RadioOption)\n    import Prima.Pyxis.Form.Event as Event\n\n    ...\n\n    type alias Msg\n        = OnSelect (Maybe String)\n\n    type alias Model =\n        { gender : Maybe String }\n\n    ...\n\n    genderConfig : FormField Model Msg\n    genderConfig =\n        let\n            options : List RadioOption\n            options =\n                [ Form.radioOption \"Male\" \"male\", Form.radioOption \"Female\", \"female\" ]\n        in\n        Form.radioConfig\n            \"gender\"\n            (Just \"Gender\")\n            []\n            .gender\n            [ Event.onSelect OnSelect ]\n            options\n            []\n\n","type":"Prima.Pyxis.Form.Slug -> Maybe.Maybe Prima.Pyxis.Form.Label -> List.List (Html.Attribute msg) -> (model -> Maybe.Maybe Prima.Pyxis.Form.Value) -> List.List (Prima.Pyxis.Form.Event.Event msg) -> List.List Prima.Pyxis.Form.RadioOption -> List.List (Prima.Pyxis.Form.Validation.Validation model) -> Prima.Pyxis.Form.FormField model msg"},{"name":"radioOption","comment":" Creates a radio option.\n","type":"Prima.Pyxis.Form.Label -> Prima.Pyxis.Form.Slug -> Prima.Pyxis.Form.RadioOption"},{"name":"render","comment":" Renders a form with all it's fields.\nRequires a `Form model msg` created via `Form.init` and `Form.addFields`.\n","type":"model -> Prima.Pyxis.Form.Form model msg -> Html.Html msg"},{"name":"renderField","comment":" Renders a single `FormField`\n\n    --\n    import Html exposing (Html)\n    import Prima.Pyxis.Form as Form exposing (Form, FormField)\n    import FieldConfig exposing (usernameConfig)\n\n    ...\n\n    type Msg\n        = OnInput (Maybe String)\n\n    type alias Model =\n        { form : Form FormData Msg\n        , data : FormData\n        }\n\n    type alias FormData =\n        { username: Maybe String\n        }\n\n    ...\n\n    view : Model -> Html Msg\n    view { data, formConfig } =\n        div\n        [ class \"a-container\" ]\n        [\n            usernameConfig\n                |> Form.renderField formConfig data\n        ]\n\n","type":"Prima.Pyxis.Form.Form model msg -> model -> Prima.Pyxis.Form.FormField model msg -> Html.Html msg"},{"name":"renderFieldList","comment":" Renders a single `FormFieldList`\n\n    --\n    ...\n    formFieldList : FormFieldList FormData Msg\n    formFieldList =\n        Form.fieldListConfig\n            -- Field List label\n            \"Username & Alternative Username\"\n            -- Field List FormFields\n            [ username, alternativeUsername ]\n            -- Field List own validations\n            [ FormValidation.config FormValidation.Warning\n                (\\formData -> not (formData.username == formData.alternativeUsername))\n                \"Username and password shouldn't be equal\"\n            ]\n    ...\n    view : Model -> Html Msg\n    view { data, formConfig } =\n        div\n        [ class \"a-container\" ]\n        [ Config.formFieldList\n            |> Form.renderFieldList formConfig data\n        ]\n\n","type":"Prima.Pyxis.Form.Form model msg -> model -> Prima.Pyxis.Form.FormFieldList model msg -> Html.Html msg"},{"name":"selectConfig","comment":" Creates a select field. This field is a custom component on desktop devices. It fallbacks to a\nnative `Html Select` tag on mobile devices.\nInfact we need to express `isDisabled` flag as an `Html Attribute` and also as a parameter for this method.\n\nThis field can handle only onToggle, onInput, onSelect, onFocus and onBlur events. Other events will be ignored.\n\n    --\n    import Prima.Pyxis.Form as Form exposing (FormField, Label, Slug, SelectOption)\n    import Prima.Pyxis.Form.Event as Event\n    import Html.Attributes\n    ...\n\n    type alias Msg\n        = OnInput (Maybe String)\n        | OnToggle\n        | OnSelect (Maybe String)\n        | OnFocus\n        | OnBlur\n\n    type alias Model =\n        { city : Maybe String\n        , isOpen : Bool\n        , isDisabled : Bool\n        }\n\n    ...\n\n    cities : Model -> FormField Model Msg\n    cities model =\n        let\n            options : List SelectOption\n            options =\n                [ Form.selectOption \"Milan\" \"MI\", Form.selectOption \"Turin\" \"TO\", Form.selectOption \"Rome\" \"RO\" ]\n        in\n        Form.selectConfig\n            \"city\"\n            (Just \"City\")\n            model.isDisabled\n            model.isOpen\n            (Just \"Select a city\")\n            [ Html.Attributes.disabled model.isDisabled ]\n            .city\n            [ Event.onToggle OnToggle, Event.onInput OnInput, Event.onSelect OnSelect, Event.onFocus, Event.onBlur ]\n            options\n            [ FormValidation.config FormValidation.Error\n              (\\formData -> not (formData.city == Nothing))\n              \"You must select a city\"\n            ]\n\n","type":"Prima.Pyxis.Form.Slug -> Maybe.Maybe Prima.Pyxis.Form.Label -> Basics.Bool -> Basics.Bool -> Maybe.Maybe String.String -> List.List (Html.Attribute msg) -> (model -> Maybe.Maybe Prima.Pyxis.Form.Value) -> List.List (Prima.Pyxis.Form.Event.Event msg) -> List.List Prima.Pyxis.Form.SelectOption -> List.List (Prima.Pyxis.Form.Validation.Validation model) -> Prima.Pyxis.Form.FormField model msg"},{"name":"selectOption","comment":" Creates a select option.\n","type":"Prima.Pyxis.Form.Label -> Prima.Pyxis.Form.Slug -> Prima.Pyxis.Form.SelectOption"},{"name":"setAsSubmitted","comment":" Sets the form to Submitted state.\n","type":"Prima.Pyxis.Form.Form model msg -> Prima.Pyxis.Form.Form model msg"},{"name":"setAsTouched","comment":" Sets the form to Touched state (Not Pristine but not yet Submitted).\n","type":"Prima.Pyxis.Form.Form model msg -> Prima.Pyxis.Form.Form model msg"},{"name":"textConfig","comment":" Creates an input text field.\nThis field can handle only onInput, onFocus, onBlur events. Other events will be ignored.\n\n    --\n    import Prima.Pyxis.Form as Form exposing (FormField)\n    import Prima.Pyxis.Form.Event as Event\n    import Prima.Pyxis.Form.Validation as FormValidation\n\n    ...\n\n    type alias Msg\n        = OnInput (Maybe String)\n        | OnFocus\n        | OnBlur\n\n    type alias Model =\n        { username : Maybe String }\n\n    ...\n\n    usernameConfig : FormField Model Msg\n    usernameConfig =\n        Form.textConfig\n            \"username\"\n            (Just \"Username\")\n            [ minlength 3, maxlength 12 ]\n            .username\n            [ Event.onInput OnInput\n            , Event.onFocus OnFocus\n            , Event.onBlur OnBlur\n            ]\n            [ FormValidation.config FormValidation.Error\n              (\\formData -> not (formData.username == Nothing))\n              \"Username shouldn't be empty\"\n            ]\n\n","type":"Prima.Pyxis.Form.Slug -> Maybe.Maybe Prima.Pyxis.Form.Label -> List.List (Html.Attribute msg) -> (model -> Maybe.Maybe Prima.Pyxis.Form.Value) -> List.List (Prima.Pyxis.Form.Event.Event msg) -> List.List (Prima.Pyxis.Form.Validation.Validation model) -> Prima.Pyxis.Form.FormField model msg"},{"name":"textareaConfig","comment":" Creates a texarea field. Same configuration as `textConfig`.\n","type":"Prima.Pyxis.Form.Slug -> Maybe.Maybe Prima.Pyxis.Form.Label -> List.List (Html.Attribute msg) -> (model -> Maybe.Maybe Prima.Pyxis.Form.Value) -> List.List (Prima.Pyxis.Form.Event.Event msg) -> List.List (Prima.Pyxis.Form.Validation.Validation model) -> Prima.Pyxis.Form.FormField model msg"},{"name":"validateAlways","comment":" Sets the form validation visibility policy to Always\n","type":"Prima.Pyxis.Form.Form model msg -> Prima.Pyxis.Form.Form model msg"},{"name":"validateWhenSubmitted","comment":" Sets the form validation visibility policy to WhenSubmitted\n","type":"Prima.Pyxis.Form.Form model msg -> Prima.Pyxis.Form.Form model msg"}],"binops":[]},{"name":"Prima.Pyxis.Form.Event","comment":" Allows to control events of the `Form` package.\n\n\n# Configuration\n\n@docs Event, onInput, onSelect, onCheck, onAutocompleteFilter, onFocus, onBlur, onToggle\n\n\n# Helpers\n\n@docs onInputAttribute, onSelectAttribute, onCheckAttribute, onAutocompleteFilterAttribute, onFocusAttribute, onBlurAttribute, onToggleAttribute\n\n","unions":[{"name":"Event","comment":" Represents an Event listener over a field.\n","args":["msg"],"cases":[]}],"aliases":[],"values":[{"name":"onAutocompleteFilter","comment":" Creates an onInput, onKeyDown listener. Can be used to intercept autocomplete filtering.\nWorks on autocomplete component only.\n","type":"(Maybe.Maybe Prima.Pyxis.Form.Event.Value -> msg) -> Prima.Pyxis.Form.Event.Event msg"},{"name":"onAutocompleteFilterAttribute","comment":" Returns an appendable version of the listener\n","type":"List.List (Prima.Pyxis.Form.Event.Event msg) -> List.List (Html.Attribute msg)"},{"name":"onBlur","comment":" Creates an onBlur listener. Can be used by almost any field.\n","type":"msg -> Prima.Pyxis.Form.Event.Event msg"},{"name":"onBlurAttribute","comment":" Returns an appendable version of the listener\n","type":"List.List (Prima.Pyxis.Form.Event.Event msg) -> List.List (Html.Attribute msg)"},{"name":"onCheck","comment":" Creates an onChange listener. Can be used to intercept checkbox option selection.\nWorks on checkbox component only.\n","type":"(( Prima.Pyxis.Form.Event.Slug, Basics.Bool ) -> msg) -> Prima.Pyxis.Form.Event.Event msg"},{"name":"onCheckAttribute","comment":" Returns an appendable version of the listener\n","type":"Prima.Pyxis.Form.Event.Slug -> Basics.Bool -> List.List (Prima.Pyxis.Form.Event.Event msg) -> List.List (Html.Attribute msg)"},{"name":"onFocus","comment":" Creates an onFocus listener. Can be used by almost any field.\n","type":"msg -> Prima.Pyxis.Form.Event.Event msg"},{"name":"onFocusAttribute","comment":" Returns an appendable version of the listener\n","type":"List.List (Prima.Pyxis.Form.Event.Event msg) -> List.List (Html.Attribute msg)"},{"name":"onInput","comment":" Creates an onInput and onKeyDown listener. Can be used to intercept keydown on text fields.\nFor instance is used under the hood by the text component to write into the field.\n","type":"(Maybe.Maybe Prima.Pyxis.Form.Event.Value -> msg) -> Prima.Pyxis.Form.Event.Event msg"},{"name":"onInputAttribute","comment":" Returns an appendable version of the listener\n","type":"List.List (Prima.Pyxis.Form.Event.Event msg) -> List.List (Html.Attribute msg)"},{"name":"onSelect","comment":" Creates an onChange listener. Can be used to intercept click on various items.\nFor instance is used under the hood by the autocomplete component to select an option.\n","type":"(Maybe.Maybe Prima.Pyxis.Form.Event.Value -> msg) -> Prima.Pyxis.Form.Event.Event msg"},{"name":"onSelectAttribute","comment":" Returns an appendable version of the listener\n","type":"Prima.Pyxis.Form.Event.Slug -> List.List (Prima.Pyxis.Form.Event.Event msg) -> List.List (Html.Attribute msg)"},{"name":"onToggle","comment":" Can be used to intercept select component opening and closing.\nWorks on select component only.\n","type":"msg -> Prima.Pyxis.Form.Event.Event msg"},{"name":"onToggleAttribute","comment":" Returns an appendable version of the listener\n","type":"List.List (Prima.Pyxis.Form.Event.Event msg) -> List.List (Html.Attribute msg)"}],"binops":[]},{"name":"Prima.Pyxis.Form.Validation","comment":" Allows to create Validation model for the form.\n\n\n# Configuration\n\n@docs Validation, config\n\n    import Prima.Pyxis.Form as PrimaForm\n    import Prima.Pyxis.Form.Validation as FormValidation\n    import Regex\n\n    ...\n\n    type alias LoginData =\n        { username : Maybe String }\n\n    ...\n\n    usernameConfig : Bool -> PrimaForm.FormField LoginData Msg\n    usernameConfig enabled =\n        PrimaForm.textConfig\n            \"username\"\n            (Just \"username\")\n            [ minlength 3, placeholder \"username\", disabled (not enabled) ]\n            .email\n            [ PrimaFormEvent.onInput (OnInput UsernameField) ]\n            [ FormValidation.config\n                FormValidation.Warning\n                (\\formData -> not (formData.username == Just \"notsecureusername\"))\n                \"Username is not secure.\"\n            ]\n\n\n# ValidationType\n\n@docs ValidationType\n\n\n# Helpers\n\n@docs pickFunction, pickValidationMessage, pickType, isError, isWarning\n\n","unions":[{"name":"Validation","comment":" Represents a validation entry.\n","args":["model"],"cases":[]},{"name":"ValidationType","comment":" Represents a validation type.\n","args":[],"cases":[["Error",[]],["Warning",[]]]}],"aliases":[],"values":[{"name":"config","comment":" Configure a Validation\n","type":"Prima.Pyxis.Form.Validation.ValidationType -> (model -> Basics.Bool) -> String.String -> Prima.Pyxis.Form.Validation.Validation model"},{"name":"isError","comment":" Check if given type is error\n","type":"Prima.Pyxis.Form.Validation.ValidationType -> Basics.Bool"},{"name":"isWarning","comment":" Check if given type is warning\n","type":"Prima.Pyxis.Form.Validation.ValidationType -> Basics.Bool"},{"name":"pickFunction","comment":" Pick the validation evaluation function from a Validation model.\n","type":"Prima.Pyxis.Form.Validation.Validation model -> model -> Basics.Bool"},{"name":"pickType","comment":" Pick the validation type from a Validation model.\n","type":"Prima.Pyxis.Form.Validation.Validation model -> Prima.Pyxis.Form.Validation.ValidationType"},{"name":"pickValidationMessage","comment":" Pick the validation string message from a Validation model.\n","type":"Prima.Pyxis.Form.Validation.Validation model -> String.String"}],"binops":[]},{"name":"Prima.Pyxis.Link","comment":" Allows to create a `Link` using predefined Html syntax.\n\n\n# Configuration\n\n@docs Config, Icon\n\n\n# Configuration Helpers\n\n@docs simple, standalone, withIcon\n\n\n# Icons Configuratiion Helpers\n\n@docs iconChevronDown, iconDownload, iconEdit, iconEmail, iconPhone\n\n\n# Rendering\n\n@docs render\n\n","unions":[{"name":"Config","comment":" Represents the configuration of a `Link`.\n","args":[],"cases":[]},{"name":"Icon","comment":" Represents an icon from Pyxis Iconset.\n","args":[],"cases":[]}],"aliases":[],"values":[{"name":"iconChevronDown","comment":" Creates a chevron-down icon.\n","type":"Prima.Pyxis.Link.Icon"},{"name":"iconDownload","comment":" Creates a download icon.\n","type":"Prima.Pyxis.Link.Icon"},{"name":"iconEdit","comment":" Creates an edit icon.\n","type":"Prima.Pyxis.Link.Icon"},{"name":"iconEmail","comment":" Creates an email icon.\n","type":"Prima.Pyxis.Link.Icon"},{"name":"iconPhone","comment":" Creates a phone icon.\n","type":"Prima.Pyxis.Link.Icon"},{"name":"render","comment":" Renders a link by receiving it's configuration.\n","type":"Prima.Pyxis.Link.Config -> Html.Html msg"},{"name":"simple","comment":" Creates a simple link. Used when the link itself is in a paragraph.\n\n    --\n\n    import Prima.Pyxis.Link as Link\n\n    ...\n\n    myLink : Link.Config\n    myLink =\n        Link.simple \"Visit site\" \"https://www.prima.it\"\n\n","type":"String.String -> String.String -> Prima.Pyxis.Link.Config"},{"name":"standalone","comment":" Creates a standalone link. Used when the link itself stands alone.\n\n    --\n\n    import Prima.Pyxis.Link as Link\n\n    ...\n\n    myLink : Link.Config\n    myLink =\n        Link.standalone \"Visit site\" \"https://www.prima.it\"\n\n","type":"String.String -> String.String -> Prima.Pyxis.Link.Config"},{"name":"withIcon","comment":" Creates a simple link which holds an icon. Used when the link itself stands alone.\n\n    --\n\n    import Prima.Pyxis.Link as Link\n\n    ...\n\n    myLink : Link.Config\n    myLink =\n        Link.withIcon \"Visit site\" \"https://www.prima.it\" Link.iconEdit\n\n","type":"String.String -> String.String -> Prima.Pyxis.Link.Icon -> Prima.Pyxis.Link.Config"}],"binops":[]},{"name":"Prima.Pyxis.ListChooser","comment":" Creates a List of ChooserItems component.\n\n\n# Configuration\n\n@docs Config, State, Msg, ChooserItem, ViewMode\n\n\n# Configuration Helpers\n\n@docs config, init, update\n\n\n# Helpers\n\n@docs createItem, viewMode, viewModeAll, viewModePartial\n\n\n# Render\n\n@docs render\n\n","unions":[{"name":"ChooserItem","comment":" Represents a single item which can be selected via ListChooser's api.\n","args":[],"cases":[]},{"name":"Config","comment":" Represents the configuration of the component.\n","args":[],"cases":[]},{"name":"Msg","comment":" Represents an internal Msg for the component.\n","args":[],"cases":[]},{"name":"State","comment":" Represents the component State.\n","args":[],"cases":[]},{"name":"ViewMode","comment":" Defines the mode in which the list must be shown. It's possible to choose\nbetween the full list of items (`viewModeAll`) or a limited set of items (viewModePartial).\nIn this case the number of items to be shown is expressed via `itemsPerView`.\n","args":[],"cases":[]}],"aliases":[],"values":[{"name":"config","comment":" Creates the configuration of the ListChooser.\n\n    ...\n\n    myConfig : ListChooser.Config\n    myConfig =\n        let\n            itemsPerView =\n                5\n\n            viewAllLabel =\n                \"Show all\"\n\n            viewPartialLabel =\n                \"Show first \" ++ (String.fromInt itemsPerView) ++ \" elements\"\n        in\n        ListChooser.config itemsPerView viewAllLabel viewPartialLabel\n\n    ...\n\n","type":"Basics.Int -> String.String -> String.String -> Prima.Pyxis.ListChooser.Config"},{"name":"createItem","comment":" Creates a representation of a ChooserItem.\n\n    ...\n\n    myItem : ListChooser.ChooserItem\n    myItem =\n        let\n            slug =\n                \"my_item_slug\"\n\n            content =\n                \"Lorem ipsum dolor sit amet.\"\n\n            isSelected =\n                False\n        in\n        ListChooser.createItem slug content isSelected\n\n    ...\n\n","type":"Prima.Pyxis.ListChooser.Slug -> String.String -> Basics.Bool -> Prima.Pyxis.ListChooser.ChooserItem"},{"name":"init","comment":" Creates the first instance of a ListChooser.\n","type":"Prima.Pyxis.ListChooser.ViewMode -> List.List Prima.Pyxis.ListChooser.ChooserItem -> ( Prima.Pyxis.ListChooser.State, Platform.Cmd.Cmd Prima.Pyxis.ListChooser.Msg )"},{"name":"render","comment":" Renders the component by receiving a State and a Config.\n","type":"Prima.Pyxis.ListChooser.State -> Prima.Pyxis.ListChooser.Config -> Html.Html Prima.Pyxis.ListChooser.Msg"},{"name":"update","comment":" Updates the State of the component. Used by the parent application to\ndispatch messages to this component.\n","type":"Prima.Pyxis.ListChooser.Msg -> Prima.Pyxis.ListChooser.State -> ( Prima.Pyxis.ListChooser.State, Platform.Cmd.Cmd Prima.Pyxis.ListChooser.Msg )"},{"name":"viewMode","comment":" Sets the new ViewMode by updating the State.\n","type":"Prima.Pyxis.ListChooser.ViewMode -> Prima.Pyxis.ListChooser.State -> Prima.Pyxis.ListChooser.State"},{"name":"viewModeAll","comment":" Retrieves the all ViewMode constructor.\n","type":"Prima.Pyxis.ListChooser.ViewMode"},{"name":"viewModePartial","comment":" Retrieves the partial ViewMode constructor.\n","type":"Prima.Pyxis.ListChooser.ViewMode"}],"binops":[]},{"name":"Prima.Pyxis.Loader","comment":" Creates a Loader with svg animation.\n\n\n# Configuration\n\n@docs Config\n\n\n# Configuration Helpers\n\n@docs spinner, vehicle\n\n\n# Helpers\n\n@docs medium, small\n\n\n# Render\n\n@docs render\n\n","unions":[{"name":"Config","comment":" Represents the configuration of the loader.\n","args":[],"cases":[]}],"aliases":[],"values":[{"name":"medium","comment":" Define a Medium size for the loader. You can use it only with Spinner loader.\n","type":"Maybe.Maybe Prima.Pyxis.Loader.LoaderSize"},{"name":"render","comment":" Renders the loader and it's (infinite) animation.\n\n    import Prima.Pyxis.Loader as Loader\n\n    ...\n\n    Loader.render <| Loader.vehicle (Just \"Please wait...\")\n\n    ...\n\n","type":"Prima.Pyxis.Loader.Config -> Html.Html msg"},{"name":"small","comment":" Define a Small size for the loader. You can use it only with Spinner loader.\n","type":"Maybe.Maybe Prima.Pyxis.Loader.LoaderSize"},{"name":"spinner","comment":" Represents the configuration of the Spinner loader.\n\n    import Prima.Pyxis.Loader as Loader\n\n    ...\n\n    config : Loader.Config\n    config =\n        Loader.spinner Loader.small (Just \"Please wait...\")\n\n    ...\n\n","type":"Maybe.Maybe Prima.Pyxis.Loader.LoaderSize -> Maybe.Maybe String.String -> Prima.Pyxis.Loader.Config"},{"name":"vehicle","comment":" Represents the configuration of the Vehicle loader.\n\n    import Prima.Pyxis.Loader as Loader\n\n    ...\n\n    config : Loader.Config\n    config =\n        Loader.vehicle (Just \"Please wait...\")\n\n    ...\n\n","type":"Maybe.Maybe String.String -> Prima.Pyxis.Loader.Config"}],"binops":[]},{"name":"Prima.Pyxis.Message","comment":" Creates a Message component by using predefined Html syntax.\n\n\n# Configuration\n\n@docs Config\n\n\n# Configuration Helpers\n\n@docs messageErrorConfig, messageInfoConfig, messageSuccessConfig\n\n\n# Render\n\n@docs render\n\n","unions":[{"name":"Config","comment":" Represents the config of a Message\n","args":["msg"],"cases":[]}],"aliases":[],"values":[{"name":"messageErrorConfig","comment":" Defines the configuration of an Error message.\n","type":"List.List (Html.Html msg) -> Prima.Pyxis.Message.Config msg"},{"name":"messageInfoConfig","comment":" Defines the configuration of an Info message.\n","type":"List.List (Html.Html msg) -> Prima.Pyxis.Message.Config msg"},{"name":"messageSuccessConfig","comment":" Defines the configuration of a Success message.\n","type":"List.List (Html.Html msg) -> Prima.Pyxis.Message.Config msg"},{"name":"render","comment":" Renders the Message by receiving it's Config.\n","type":"Prima.Pyxis.Message.Config msg -> Html.Html msg"}],"binops":[]},{"name":"Prima.Pyxis.Modal","comment":" Allows to create a Modal component using predefined Html syntax.\n\n\n# Modal Configuration\n\n@docs Config, config\n\n\n# Modal Size\n\n@docs ModalSize, small, medium, large\n\n\n# Modal Header\n\n@docs ModalHeader, defaultHeader, customHeader\n\n\n# Modal Footer\n\n@docs ModalFooter, emptyFooter, withButtonsFooter, customFooter\n\n\n# Rendering\n\n@docs view\n\n","unions":[{"name":"Config","comment":" Represents the configuration of a Modal component.\nThe Modal will trigger a \"closed\" Msg when the overlay is clicked.\nIs up to you to intercept and manage this Msg.\n","args":["msg"],"cases":[]},{"name":"ModalFooter","comment":" Represents the Footer configuration of a Modal.\n","args":["msg"],"cases":[]},{"name":"ModalHeader","comment":" Represents the Header configuration of a Modal.\n","args":["msg"],"cases":[]},{"name":"ModalSize","comment":" Represents the Modal size.\n","args":[],"cases":[]}],"aliases":[],"values":[{"name":"config","comment":" Creates a Modal.Config.\n\n    --\n    import Prima.Pyxis.Modal as Modal\n    import Html exposing (Html, p, text)\n\n    ...\n\n    type Msg =\n        ModalClosed\n\n    ...\n\n    myModalConfig : Modal.Config\n    myModalConfig =\n        let\n            modalHeader : Modal.ModalHeader Msg\n            modalHeader =\n                Modal.defaultHeader \"My modal title\"\n\n            modalFooter : Modal.ModalFooter Msg\n            modalFooter =\n                Modal.emptyFooter\n\n            modalContent : List (Html Msg)\n            modalContent =\n                p [] [ text \"Lorem ipsum dolor sit amet.\"]\n        in\n        Modal.config Modal.medium modalHeader  modalContent modalFooter ModalClosed\n\n","type":"Prima.Pyxis.Modal.ModalSize -> Prima.Pyxis.Modal.ModalHeader msg -> List.List (Html.Html msg) -> Prima.Pyxis.Modal.ModalFooter msg -> msg -> Prima.Pyxis.Modal.Config msg"},{"name":"customFooter","comment":" Represents a Footer with custom Html content.\n","type":"List.List (Html.Html msg) -> Prima.Pyxis.Modal.ModalFooter msg"},{"name":"customHeader","comment":" Creates a Header config with custom Html content.\n","type":"List.List (Html.Html msg) -> Prima.Pyxis.Modal.ModalHeader msg"},{"name":"defaultHeader","comment":" Creates a Header config with a simple title.\n","type":"String.String -> Prima.Pyxis.Modal.ModalHeader msg"},{"name":"emptyFooter","comment":" Represents a Footer without content.\n","type":"Prima.Pyxis.Modal.ModalFooter msg"},{"name":"large","comment":" Creates a Large ModalSize\n","type":"Prima.Pyxis.Modal.ModalSize"},{"name":"medium","comment":" Creates a Medium ModalSize\n","type":"Prima.Pyxis.Modal.ModalSize"},{"name":"small","comment":" Creates a Small ModalSize\n","type":"Prima.Pyxis.Modal.ModalSize"},{"name":"view","comment":" Renders the Modal by passing isVisible flag and a Modal.Config\n\n    --\n    import Prima.Pyxis.Modal as Modal\n    import Html exposing (Html, p, text)\n\n    ...\n\n    type Msg =\n        ModalClosed\n\n    ...\n\n    myModalConfig : Modal.Config\n    myModalConfig =\n        let\n            modalHeader : Modal.ModalHeader Msg\n            modalHeader =\n                Modal.defaultHeader \"My modal title\"\n\n            modalFooter : Modal.ModalFooter Msg\n            modalFooter =\n                Modal.emptyFooter\n\n            modalContent : List (Html Msg)\n            modalContent =\n                p [] [ text \"Lorem ipsum dolor sit amet.\"]\n        in\n        Modal.config Modal.medium modalHeader  modalContent modalFooter ModalClosed\n\n    renderModal : Html Msg\n    renderModal =\n        let\n            isVisible =\n                True\n        in\n        Modal.view isVisible myModalConfig\n\n","type":"Basics.Bool -> Prima.Pyxis.Modal.Config msg -> Html.Html msg"},{"name":"withButtonsFooter","comment":" Represents a Footer with a list of Prima.Pyxis.Button instances.\nAll the buttons will be wrapper in a btnGroup, so no more than 4 buttons are allowed.\n","type":"List.List (Html.Html msg) -> Prima.Pyxis.Modal.ModalFooter msg"}],"binops":[]},{"name":"Prima.Pyxis.Table","comment":" Creates a customizable Table component by using predefined Html syntax.\n\n\n# Configuration\n\n@docs Config, TableType, State, Header, Row, Column, ColSpan, Sort, Footer, FooterColumn, FooterRow\n\n\n# Configuration Helpers\n\n@docs config, initialState, defaultType, alternativeType\n\n\n# Configuration for Rows & Headers\n\n@docs header, row, footerRow\n\n\n# Configuration for Columns\n\n@docs columnFloat, columnHtml, columnInteger, columnString, footerColumnFloat, footerColumnHtml, footerColumnInteger, footerColumnString\n\n\n# Helpers\n\n@docs sort, sortAsc, sortDesc\n\n\n# Render\n\n@docs render\n\n","unions":[{"name":"Column","comment":" Represents a Column which can manage a specific kind of data.\n","args":["msg"],"cases":[]},{"name":"Config","comment":" Represents the static configuration of the component.\n","args":["msg"],"cases":[]},{"name":"Footer","comment":" Represents a Footer of the table. It's gonna be rendered as a <tr/> tag inside a tfoot.\n","args":["msg"],"cases":[]},{"name":"FooterColumn","comment":" Represents a Footer Column which can manage a specific kind of data.\n","args":["msg"],"cases":[]},{"name":"FooterRow","comment":" Represents a Footer Row which contains a list of Columns.\n","args":["msg"],"cases":[]},{"name":"Header","comment":" Represents an Header of the table. It's gonna be rendered as a <th/> tag.\n","args":["msg"],"cases":[]},{"name":"Row","comment":" Represents a Row which contains a list of Columns.\n","args":["msg"],"cases":[]},{"name":"Sort","comment":" Represents the sort algorithm\n","args":[],"cases":[]},{"name":"State","comment":" Represents the basic state of the component.\n","args":[],"cases":[]},{"name":"TableType","comment":" Represents the table skin.\n","args":[],"cases":[]}],"aliases":[{"name":"ColSpan","comment":" Represents the colSpan of a column. Alias for Integer.\n","args":[],"type":"Basics.Int"}],"values":[{"name":"alternativeType","comment":" Represents the Alternative table skin.\n","type":"Prima.Pyxis.Table.TableType"},{"name":"columnFloat","comment":" Creates a Column which content is Float primitive.\n","type":"Prima.Pyxis.Table.ColSpan -> Basics.Float -> Prima.Pyxis.Table.Column msg"},{"name":"columnHtml","comment":" Creates a Column which content is Html.\n","type":"Prima.Pyxis.Table.ColSpan -> List.List (Html.Html msg) -> Prima.Pyxis.Table.Column msg"},{"name":"columnInteger","comment":" Creates a Column which content is Integer primitive.\n","type":"Prima.Pyxis.Table.ColSpan -> Basics.Int -> Prima.Pyxis.Table.Column msg"},{"name":"columnString","comment":" Creates a Column which content is String primitive.\n","type":"Prima.Pyxis.Table.ColSpan -> String.String -> Prima.Pyxis.Table.Column msg"},{"name":"config","comment":" Returns the config of the component.\n\n    ...\n\n    type Msg =\n        SortBy String\n    ...\n\n    myTableConfig : Table.Config\n    myTableConfig =\n        let\n            headers : List (Table.Header Msg)\n            headers =\n                List.map (\\content -> Table.header (String.toLower content) content SortBy) [ \"Country\", \"Capital city\" ]\n\n            rows : List (Table.Row Msg)\n            rows =\n                List.map (Table.row << List.map Table.columnString ) [ [\"Italy\", \"Rome\"], [\"France\", \"Paris\"], [\"U.K.\", \"London\"] ]\n\n            alternateRows =\n                True\n\n            createFooterColumns : List String -> List (Table.FooterColumn Msg)\n            createFooterColumns columns =\n                List.map (Table.footerColumnString 1) columns\n\n            footer : List (Table.FooterRow Msg)\n            footer =\n                [ Table.footerRow (createFooterColumns [ \"Country\", \"Capital city\" ]) ]\n\n        in\n        Table.config Table.defaultType sorting headers rows alternateRows footerColumns [(\"my-custom-class\", True)]\n\n    ...\n\n","type":"Prima.Pyxis.Table.TableType -> Basics.Bool -> List.List (Prima.Pyxis.Table.Header msg) -> List.List (Prima.Pyxis.Table.Row msg) -> Basics.Bool -> List.List (Prima.Pyxis.Table.FooterRow msg) -> List.List ( String.String, Basics.Bool ) -> Prima.Pyxis.Table.Config msg"},{"name":"defaultType","comment":" Represents the Default table skin.\n","type":"Prima.Pyxis.Table.TableType"},{"name":"footerColumnFloat","comment":" Creates a FooterColumn which content is Float primitive.\n","type":"Prima.Pyxis.Table.ColSpan -> Basics.Float -> Prima.Pyxis.Table.FooterColumn msg"},{"name":"footerColumnHtml","comment":" Creates a FooterColumn which content is Html.\n","type":"Prima.Pyxis.Table.ColSpan -> List.List (Html.Html msg) -> Prima.Pyxis.Table.FooterColumn msg"},{"name":"footerColumnInteger","comment":" Creates a FooterColumn which content is Integer primitive.\n","type":"Prima.Pyxis.Table.ColSpan -> Basics.Int -> Prima.Pyxis.Table.FooterColumn msg"},{"name":"footerColumnString","comment":" Creates a FooterColumn which content is String primitive.\n","type":"Prima.Pyxis.Table.ColSpan -> String.String -> Prima.Pyxis.Table.FooterColumn msg"},{"name":"footerRow","comment":" Creates a FooterRow\n\n    myRow : List (FooterColumn Msg) -> Table.footerRow Msg\n    myRow columns =\n        Table.footerRow columns\n\n","type":"List.List (Prima.Pyxis.Table.FooterColumn msg) -> Prima.Pyxis.Table.FooterRow msg"},{"name":"header","comment":" Creates and Header.\n\n    myHeader : String -> String -> (String -> Msg) -> Table.Header Msg\n    myHeader slug content sortByTagger =\n        Table.header slug content sortByTagger\n\n","type":"Prima.Pyxis.Table.Slug -> Prima.Pyxis.Table.Name -> Maybe.Maybe (Prima.Pyxis.Table.Slug -> msg) -> Prima.Pyxis.Table.Header msg"},{"name":"initialState","comment":" Creates an initial State defined by Sort and Column.\n","type":"Maybe.Maybe Prima.Pyxis.Table.Sort -> Maybe.Maybe String.String -> Prima.Pyxis.Table.State"},{"name":"render","comment":" Renders a Table by receiving a State and a Config\n","type":"Prima.Pyxis.Table.State -> Prima.Pyxis.Table.Config msg -> Html.Html msg"},{"name":"row","comment":" Creates a Row\n\n    myRow : List (Column Msg) -> Table.Row Msg\n    myRow columns =\n        Table.row columns\n\n","type":"List.List (Prima.Pyxis.Table.Column msg) -> Prima.Pyxis.Table.Row msg"},{"name":"sort","comment":" Sets the sorting algorithm for a specific column.\n","type":"Maybe.Maybe Prima.Pyxis.Table.Slug -> Maybe.Maybe Prima.Pyxis.Table.Sort -> Prima.Pyxis.Table.State -> Prima.Pyxis.Table.State"},{"name":"sortAsc","comment":" Returns the Ascending sort algorithm.\n","type":"Maybe.Maybe Prima.Pyxis.Table.Sort"},{"name":"sortDesc","comment":" Returns the Descending sort algorithm.\n","type":"Maybe.Maybe Prima.Pyxis.Table.Sort"}],"binops":[]},{"name":"Prima.Pyxis.Tooltip","comment":" Creates a Tooltip component by using predefined Html syntax.\n\n\n# Configuration\n\n@docs Config\n\n\n# Configuration Helpers\n\n@docs upConfig, downConfig, leftConfig, rightConfig\n\n\n# Render\n\n@docs render\n\n","unions":[{"name":"Config","comment":" Represents the config of a Tooltip\n","args":["msg"],"cases":[]}],"aliases":[],"values":[{"name":"downConfig","comment":" Defines the configuration of a Down tooltip.\n","type":"List.List (Html.Attribute msg) -> List.List (Html.Html msg) -> Prima.Pyxis.Tooltip.Config msg"},{"name":"leftConfig","comment":" Defines the configuration of an Left tooltip.\n","type":"List.List (Html.Attribute msg) -> List.List (Html.Html msg) -> Prima.Pyxis.Tooltip.Config msg"},{"name":"render","comment":" Renders the Tooltip by receiving it's Config.\n","type":"Prima.Pyxis.Tooltip.Config msg -> Html.Html msg"},{"name":"rightConfig","comment":" Defines the configuration of an Right tooltip.\n","type":"List.List (Html.Attribute msg) -> List.List (Html.Html msg) -> Prima.Pyxis.Tooltip.Config msg"},{"name":"upConfig","comment":" Defines the configuration of an Up tooltip.\n","type":"List.List (Html.Attribute msg) -> List.List (Html.Html msg) -> Prima.Pyxis.Tooltip.Config msg"}],"binops":[]}]