{-# LANGUAGE FlexibleContexts, FlexibleInstances, MultiParamTypeClasses, ScopedTypeVariables, TypeFamilies, UndecidableInstances, ViewPatterns #-}
module Text.Reform.Lucid.Text
(
inputText
, inputPassword
, inputSubmit
, inputReset
, inputHidden
, inputButton
, C.inputCheckbox
, C.inputCheckboxes
, C.inputRadio
, C.inputFile
, textarea
, buttonSubmit
, C.buttonReset
, C.button
, C.select
, C.selectMultiple
, C.label
, C.errorList
, C.childErrorList
, C.br
, C.fieldset
, C.ol
, C.ul
, C.li
, C.formGenGET
, C.formGenPOST
) where
import Data.Text (Text, empty)
import Lucid (ToHtml, HtmlT)
import Text.Reform
import qualified Text.Reform.Lucid.Common as C
inputText :: (Monad m, FormInput input, FormError error, ErrorInputType error ~ input, Applicative f) =>
Text
-> Form m input error (HtmlT f ()) () Text
inputText initialValue = C.inputText getInputText initialValue
inputPassword :: (Monad m, FormInput input, FormError error, ErrorInputType error ~ input, Applicative f) =>
Form m input error (HtmlT f ()) () Text
inputPassword = C.inputPassword getInputText empty
inputSubmit :: (Monad m, FormInput input, FormError error, ErrorInputType error ~ input, Applicative f) =>
Text
-> Form m input error (HtmlT f ()) () (Maybe Text)
inputSubmit initialValue = C.inputSubmit getInputText initialValue
inputReset :: (Monad m, FormInput input, FormError error, ErrorInputType error ~ input, Applicative f) =>
Text
-> Form m input error (HtmlT f ()) () ()
inputReset = C.inputReset
inputHidden :: (Monad m, FormInput input, FormError error, ErrorInputType error ~ input, Applicative f) =>
Text
-> Form m input error (HtmlT f ()) () Text
inputHidden initialValue = C.inputHidden getInputText initialValue
inputButton :: (Monad m, FormInput input, FormError error, ErrorInputType error ~ input, Applicative f) =>
Text
-> Form m input error (HtmlT f ()) () ()
inputButton label = C.inputButton label
textarea :: (Monad m, FormInput input, FormError error, ErrorInputType error ~ input, Monad f) =>
Int
-> Int
-> Text
-> Form m input error (HtmlT f ()) () Text
textarea rows cols initialValue = C.textarea getInputText rows cols initialValue
buttonSubmit :: ( Monad m, FormError error, FormInput input, ErrorInputType error ~ input, ToHtml children, Monad f) =>
Text
-> children
-> Form m input error (HtmlT f ()) () (Maybe Text)
buttonSubmit = C.buttonSubmit getInputText