nano-ui-form-0.1.0.0: lib/NanoUI/Form.hs
-- | Validated forms for nano-ui, built on ditto. A 'Form' is an applicative
-- value whose inputs are nano-ui widgets; run one in a view with
-- 'nanoFormLive', 'nanoFormSubmit', 'nanoFormEx' or 'runNanoForm'.
module NanoUI.Form
( -- * Core Form Types
Form
, FormView (..)
, FormInput (..)
, FormUI (..)
, liftNanoUI
, FormStatus (..)
, FormMode (..)
, FormConfig (..)
, defaultFormConfig
-- * Named Form Inputs
, inputText
, inputTextWithPlaceholder
, inputPassword
, inputTextArea
, inputCheckbox
, inputSlider
, inputSelect
, inputEnumSelect
, inputRadio
, inputEnumRadio
, inputColor
, label
, separator
, errors
, childErrors
, withErrors
, withChildErrors
, withFieldErrors
-- * Validation & Proofs
, module NanoUI.Form.Validation
-- * Presentation & Layout
, module NanoUI.Form.Widgets
-- * Form Runners
, runNanoForm
, nanoFormLive
, nanoFormSubmit
, nanoFormEx
, resetForm
-- * Re-exports from Ditto
, Ditto.FormRange (..)
, Ditto.FormId (..)
, Ditto.Result (..)
, Ditto.Proved (..)
, Ditto.hoistForm
, Ditto.view
, Ditto.mapView
, (Ditto.@$)
) where
import qualified Ditto.Core as Ditto
import qualified Ditto.Types as Ditto
import NanoUI.Form.Named
( childErrors
, errors
, inputCheckbox
, inputColor
, inputEnumRadio
, inputEnumSelect
, inputPassword
, inputRadio
, inputSelect
, inputSlider
, inputText
, inputTextWithPlaceholder
, inputTextArea
, label
, separator
, withChildErrors
, withErrors
, withFieldErrors
)
import NanoUI.Form.Backend (FormInput (..), FormUI (..), liftNanoUI)
import NanoUI.Form.Runner
( nanoFormEx
, nanoFormLive
, nanoFormSubmit
, resetForm
, runNanoForm
)
import NanoUI.Form.Types
( Form
, FormConfig (..)
, FormMode (..)
, FormStatus (..)
, FormView (..)
, defaultFormConfig
)
import NanoUI.Form.Validation
import NanoUI.Form.Widgets