module Web.Button ( alert_btn , alert_btn_abbr , btn , btn_ , btn_abbr , btn_abbr_ , btn_add , btn_delete , btn_delete_ro , btn_modify , btn_modify_ro , btn_readonly , btn_ro , btn_save , btn_validation , btn_validation_ , cancel_button , delete_btn , info_btn , info_btn_abbr ) where import Prelude (($), (<>)) import CSSClasses as C import Halogen.HTML as HH import Halogen.HTML.Properties as HP import Halogen.HTML.Events as HE btn_abbr_ :: forall w action. Array HH.ClassName -- button classes -> Array HH.ClassName -- inner div classes -> String -> String -> action -> HH.HTML w action btn_abbr_ btnclasses divclasses explanation_ title action = HH.button [ HE.onClick \_ -> action , HP.classes $ [C.button] <> btnclasses ] [ HH.abbr [ HP.title explanation_ ] [ HH.div [ HP.classes divclasses ] [ HH.text title ] ] ] btn_abbr :: forall w action. String -> String -> action -> HH.HTML w action btn_abbr explanation_ title action = btn_abbr_ [] [] explanation_ title action alert_btn_abbr :: forall w action. String -> String -> action -> HH.HTML w action alert_btn_abbr explanation_ title action = btn_abbr_ [C.is_danger] [] explanation_ title action btn_modify :: forall w i. i -> HH.HTML w i btn_modify action = btn_abbr_ [C.is_small, C.is_info] [C.is_size 4] "Edit" "⚒" action btn_save :: forall w i. i -> HH.HTML w i btn_save action = btn_ [C.is_info] "Save" action btn_add :: forall w i. i -> HH.HTML w i btn_add action = btn_ [C.is_info] "Add" action btn_delete :: forall w i. i -> HH.HTML w i btn_delete action = btn_abbr_ [C.is_small, C.is_danger] [C.is_size 4] "Delete" "✖" action btn_ro :: forall w i. Array HH.ClassName -> String -> HH.HTML w i btn_ro classes title = HH.button [ HP.classes $ [C.button] <> classes ] [ HH.text title ] btn_modify_ro :: forall w i. HH.HTML w i btn_modify_ro = btn_ro [C.is_small, C.is_warning] "modify" btn_readonly :: forall w i. HH.HTML w i btn_readonly = btn_ro [C.is_small, C.is_warning] "read only" btn_delete_ro :: forall w i. HH.HTML w i btn_delete_ro = btn_ro [C.is_small, C.is_warning] "remove" btn_validation_ :: forall w i. String -> HH.HTML w i btn_validation_ str = HH.button -- [ HP.style "padding: 0.5rem 1.25rem;" [ HP.type_ HP.ButtonSubmit , HP.classes [C.button, C.is_primary] ] [ HH.text str ] btn_validation :: forall w i. HH.HTML w i btn_validation = btn_validation_ "Validate" btn_ :: forall w action. Array HH.ClassName -> String -> action -> HH.HTML w action btn_ classes title action = HH.button [ HE.onClick \_ -> action , HP.classes $ [C.button] <> classes ] [ HH.text title ] btn :: forall w action. String -> action -> HH.HTML w action btn title action = btn_ [] title action info_btn :: forall w action. String -> action -> HH.HTML w action info_btn title action = btn_ [C.is_info] title action info_btn_abbr :: forall w action. String -> String -> action -> HH.HTML w action info_btn_abbr explanation_ title action = btn_abbr_ [C.is_info] [] explanation_ title action alert_btn :: forall w action. String -> action -> HH.HTML w action alert_btn title action = btn_ [C.is_danger] title action delete_btn :: forall w i. i -> HH.HTML w i delete_btn action = HH.button [HE.onClick \_ -> action, HP.classes [C.delete]] [] cancel_button :: forall w i. i -> HH.HTML w i cancel_button action = HH.button [ HP.classes [C.button] , HE.onClick \_ -> action ] [HH.text "Cancel"]