module Web.Basics where import Prelude (($), (<>)) import DOM.HTML.Indexed as DHI import Halogen.HTML as HH import Halogen.HTML.Events as HE import Halogen.HTML.Properties as HP import CSSClasses as C code :: forall w i. String -> HH.HTML w i code str = HH.code_ [ HH.text str ] text :: forall w i. String -> HH.HTML w i text = HH.text p :: forall w i. String -> HH.HTML w i p str = HH.p_ [ HH.text str ] p_ :: forall w i. Array HH.ClassName -> String -> HH.HTML w i p_ classes str = HH.p [HP.classes classes] [ HH.text str ] ul :: forall w i. Array (HH.HTML w i) -> HH.HTML w i ul body = HH.ul_ body li :: forall w i. String -> HH.HTML w i li body = li_ [] body li_ :: forall w i. Array HH.ClassName -> String -> HH.HTML w i li_ classes body = HH.li [HP.classes classes] [ HH.text body ] strong :: forall w i. String -> HH.HTML w i strong str = HH.strong_ [ HH.text str ] hr :: forall w i. HH.HTML w i hr = HH.hr_ div :: forall w i. Array (HH.HTML w i) -> HH.HTML w i div body = HH.div_ body div_ :: forall w i. HH.Node DHI.HTMLdiv w i div_ = HH.div content :: forall w i. Array (HH.HTML w i) -> HH.HTML w i content body = HH.div [HP.classes [C.content]] body content_ :: forall w i. Array HH.ClassName -> Array (HH.HTML w i) -> HH.HTML w i content_ classes body = HH.div [HP.classes ([C.content] <> classes)] body explanation :: forall w i. Array (HH.HTML w i) -> HH.HTML w i explanation body = HH.blockquote [HP.classes [HH.ClassName "justified"]] body quote :: forall w i. Array (HH.HTML w i) -> HH.HTML w i quote body = content [ explanation body ] simple_quote :: forall w i. String -> HH.HTML w i simple_quote string = quote [ p string ] article_ :: forall w i. Array HH.ClassName -> HH.HTML w i -> HH.HTML w i -> HH.HTML w i article_ classes head body = HH.article [HP.classes $ [C.message] <> classes] [ HH.div [HP.classes [C.message_header]] [head] , HH.div [HP.classes [C.message_body] ] [body] ] article :: forall w i. HH.HTML w i -> HH.HTML w i -> HH.HTML w i article head body = article_ [] head body container :: forall w i. Array (HH.HTML w i) -> HH.HTML w i container body = HH.div [HP.classes [C.container, C.is_info]] body hdiv :: forall (w :: Type) (a :: Type). Array (HH.HTML w a) -> HH.HTML w a hdiv = HH.div [ HP.classes [HH.ClassName "mt-5"] ] error_message :: forall w i. HH.HTML w i -> HH.HTML w i -> HH.HTML w i error_message head body = article_ [C.is_danger] head body textarea_ :: forall w i. Array HH.ClassName -> String -> String -> (String -> i) -> HH.HTML w i textarea_ classes placeholder value action = HH.textarea [ HE.onValueInput action , HP.value value , HP.placeholder placeholder , HP.classes $ [C.textarea] <> classes ] textarea :: forall w i. String -> String -> (String -> i) -> HH.HTML w i textarea placeholder value action = textarea_ [] placeholder value action outside_link :: forall w a. Array HH.ClassName -> String -> String -> HH.HTML w a outside_link classes url str = HH.a [ HP.classes classes, HP.target "_blank", HP.href url ] [ HH.text str ]