module Text.Reform.Blaze.String
    ( 
      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.form
    ) where
import Text.Blaze.Html (Html, ToMarkup)
import Text.Reform
import qualified Text.Reform.Blaze.Common as C
inputText :: (Monad m, FormInput input, FormError error, ErrorInputType error ~ input) =>
               String 
            -> Form m input error Html () String
inputText initialValue = C.inputText getInputString initialValue
inputPassword :: (Monad m, FormInput input, FormError error, ErrorInputType error ~ input) =>
                 Form m input error Html () String
inputPassword = C.inputPassword getInputString ""
inputSubmit :: (Monad m, FormInput input, FormError error, ErrorInputType error ~ input) =>
               String 
            -> Form m input error Html () (Maybe String)
inputSubmit initialValue = C.inputSubmit getInputString initialValue
inputReset :: (Monad m, FormInput input, FormError error, ErrorInputType error ~ input) =>
              String 
           -> Form m input error Html () ()
inputReset = C.inputReset
inputHidden :: (Monad m, FormInput input, FormError error, ErrorInputType error ~ input) =>
               String 
            -> Form m input error Html () String
inputHidden initialValue = C.inputHidden getInputString initialValue
inputButton :: (Monad m, FormInput input, FormError error, ErrorInputType error ~ input) =>
               String 
            -> Form m input error Html () ()
inputButton label = C.inputButton label
textarea :: (Monad m, FormInput input, FormError error, ErrorInputType error ~ input) =>
            Int    
         -> Int    
         -> String 
         -> Form m input error Html () String
textarea rows cols initialValue = C.textarea getInputString rows cols initialValue
buttonSubmit :: ( Monad m, FormError error, FormInput input, ErrorInputType error ~ input, ToMarkup children) =>
                String 
             -> children 
             -> Form m input error Html () (Maybe String)
buttonSubmit = C.buttonSubmit getInputString