-----------------------------------------------------------------------------
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE MultilineStrings  #-}
{-# LANGUAGE ExistentialQuantification  #-}
{-# LANGUAGE DerivingStrategies         #-}
{-# LANGUAGE RecordWildCards            #-}
{-# LANGUAGE OverloadedStrings          #-}
{-# LANGUAGE LambdaCase                 #-}
-----------------------------------------------------------------------------
module Miso.UI.Alert
  ( -- ** Views
    alert_
  , alertHeader_
  , alertSection_
  , successIcon
  , destructiveIcon
    -- ** Sample
  , alertSample
  , alertCodeSample
  ) where
-----------------------------------------------------------------------------
import           Miso hiding (alert)
import qualified Miso.Svg as S
import qualified Miso.Svg.Property as SP
import qualified Miso.Html.Element as H
import qualified Miso.Html.Property as P
-----------------------------------------------------------------------------
alert_
  :: [Attribute action]
  -> [View model action]
  -> View model action
alert_ :: forall action model.
[Attribute action] -> [View model action] -> View model action
alert_ [Attribute action]
attrs [View model action]
kids = do
  ([Attribute action] -> [View model action] -> View model action)
-> [Attribute action]
-> Bool
-> [Attribute action]
-> [View model action]
-> View model action
forall action model.
([Attribute action] -> [View model action] -> View model action)
-> [Attribute action]
-> Bool
-> [Attribute action]
-> [View model action]
-> View model action
optionalAttrs
   [Attribute action] -> [View model action] -> View model action
forall action model.
[Attribute action] -> [View model action] -> View model action
H.div_
   [Attribute action]
attrs
   Bool
True
   [ MisoString -> Attribute action
forall action. MisoString -> Attribute action
P.class_ MisoString
"alert" ]
   [View model action]
kids
-----------------------------------------------------------------------------
alertHeader_
  :: [Attribute action]
  -> [View model action]
  -> View model action
alertHeader_ :: forall action model.
[Attribute action] -> [View model action] -> View model action
alertHeader_ [Attribute action]
attrs [View model action]
kids =
  ([Attribute action] -> [View model action] -> View model action)
-> [Attribute action]
-> Bool
-> [Attribute action]
-> [View model action]
-> View model action
forall action model.
([Attribute action] -> [View model action] -> View model action)
-> [Attribute action]
-> Bool
-> [Attribute action]
-> [View model action]
-> View model action
optionalAttrs
  [Attribute action] -> [View model action] -> View model action
forall action model.
[Attribute action] -> [View model action] -> View model action
H.h2_
  [Attribute action]
attrs
  Bool
True
  []
  [View model action]
kids
-----------------------------------------------------------------------------
alertSection_
  :: [Attribute action]
  -> [View model action]
  -> View model action
alertSection_ :: forall action model.
[Attribute action] -> [View model action] -> View model action
alertSection_ [Attribute action]
attrs [View model action]
kids =
  ([Attribute action] -> [View model action] -> View model action)
-> [Attribute action]
-> Bool
-> [Attribute action]
-> [View model action]
-> View model action
forall action model.
([Attribute action] -> [View model action] -> View model action)
-> [Attribute action]
-> Bool
-> [Attribute action]
-> [View model action]
-> View model action
optionalAttrs
  [Attribute action] -> [View model action] -> View model action
forall action model.
[Attribute action] -> [View model action] -> View model action
H.section_
  [Attribute action]
attrs
  Bool
True
  []
  [View model action]
kids
-----------------------------------------------------------------------------
successIcon :: View model action
successIcon :: forall model action. View model action
successIcon = [Attribute action] -> [View model action] -> View model action
forall action model.
[Attribute action] -> [View model action] -> View model action
S.svg_
  [ MisoString -> Attribute action
forall action. MisoString -> Attribute action
P.xmlns_ MisoString
"http://www.w3.org/2000/svg"
  , MisoString -> Attribute action
forall action. MisoString -> Attribute action
P.width_ MisoString
"24"
  , MisoString -> Attribute action
forall action. MisoString -> Attribute action
P.height_ MisoString
"24"
  , MisoString -> Attribute action
forall action. MisoString -> Attribute action
SP.viewBox_ MisoString
"0 0 24 24"
  , MisoString -> Attribute action
forall action. MisoString -> Attribute action
SP.fill_ MisoString
"none"
  , MisoString -> Attribute action
forall action. MisoString -> Attribute action
SP.stroke_ MisoString
"currentColor"
  , MisoString -> Attribute action
forall action. MisoString -> Attribute action
SP.strokeWidth_ MisoString
"2"
  , MisoString -> Attribute action
forall action. MisoString -> Attribute action
SP.strokeLinecap_ MisoString
"round" 
  , MisoString -> Attribute action
forall action. MisoString -> Attribute action
SP.strokeLinejoin_ MisoString
"round"
  ]
  [ [Attribute action] -> View model action
forall action model. [Attribute action] -> View model action
S.circle_
    [ MisoString -> Attribute action
forall action. MisoString -> Attribute action
SP.cx_ MisoString
"12"
    , MisoString -> Attribute action
forall action. MisoString -> Attribute action
SP.cy_ MisoString
"12"
    , MisoString -> Attribute action
forall action. MisoString -> Attribute action
SP.r_ MisoString
"10"
    ]
  , [Attribute action] -> View model action
forall action model. [Attribute action] -> View model action
S.path_
    [ MisoString -> Attribute action
forall action. MisoString -> Attribute action
SP.d_ MisoString
"m9 12 2 2 4-4"
    ]
  ]
-----------------------------------------------------------------------------
destructiveIcon :: View model action
destructiveIcon :: forall model action. View model action
destructiveIcon =
  [Attribute action] -> [View model action] -> View model action
forall action model.
[Attribute action] -> [View model action] -> View model action
S.svg_
    [ MisoString -> Attribute action
forall action. MisoString -> Attribute action
SP.strokeWidth_ MisoString
"2"
    , MisoString -> Attribute action
forall action. MisoString -> Attribute action
SP.strokeLinecap_ MisoString
"round"
    , MisoString -> Attribute action
forall action. MisoString -> Attribute action
SP.strokeLinejoin_ MisoString
"round"
    , MisoString -> Attribute action
forall action. MisoString -> Attribute action
SP.stroke_ MisoString
"currentColor"
    , MisoString -> Attribute action
forall action. MisoString -> Attribute action
SP.fill_ MisoString
"none"
    , MisoString -> Attribute action
forall action. MisoString -> Attribute action
SP.viewBox_ MisoString
"0 0 24 24"
    , MisoString -> Attribute action
forall action. MisoString -> Attribute action
P.height_ MisoString
"24"
    , MisoString -> Attribute action
forall action. MisoString -> Attribute action
P.width_ MisoString
"24"
    , MisoString -> Attribute action
forall action. MisoString -> Attribute action
P.xmlns_ MisoString
"http://www.w3.org/2000/svg"
    ]
    [ [Attribute action] -> View model action
forall action model. [Attribute action] -> View model action
S.circle_
      [ MisoString -> Attribute action
forall action. MisoString -> Attribute action
SP.r_ MisoString
"10"
      , MisoString -> Attribute action
forall action. MisoString -> Attribute action
SP.cy_ MisoString
"12"
      , MisoString -> Attribute action
forall action. MisoString -> Attribute action
SP.cx_ MisoString
"12"
      ]
    , [Attribute action] -> View model action
forall action model. [Attribute action] -> View model action
S.line_
      [ MisoString -> Attribute action
forall action. MisoString -> Attribute action
SP.y2_ MisoString
"12"
      , MisoString -> Attribute action
forall action. MisoString -> Attribute action
SP.y1_ MisoString
"8"
      , MisoString -> Attribute action
forall action. MisoString -> Attribute action
SP.x2_ MisoString
"12"
      , MisoString -> Attribute action
forall action. MisoString -> Attribute action
SP.x1_ MisoString
"12"
      ]
    , [Attribute action] -> View model action
forall action model. [Attribute action] -> View model action
S.line_
      [ MisoString -> Attribute action
forall action. MisoString -> Attribute action
SP.y2_ MisoString
"16"
      , MisoString -> Attribute action
forall action. MisoString -> Attribute action
SP.y1_ MisoString
"16"
      , MisoString -> Attribute action
forall action. MisoString -> Attribute action
SP.x2_ MisoString
"12.01"
      , MisoString -> Attribute action
forall action. MisoString -> Attribute action
SP.x1_ MisoString
"12"
      ]
    ]
-----------------------------------------------------------------------------
alertSample :: View model action
alertSample :: forall model action. View model action
alertSample =
  [Attribute action] -> [View model action] -> View model action
forall action model.
[Attribute action] -> [View model action] -> View model action
H.div_
  [ MisoString -> Attribute action
forall action. MisoString -> Attribute action
P.class_ MisoString
"p-4" ]
  [ [Attribute action] -> [View model action] -> View model action
forall action model.
[Attribute action] -> [View model action] -> View model action
H.div_ [ MisoString -> Attribute action
forall action. MisoString -> Attribute action
P.class_ MisoString
"grid max-w-xl items-start gap-4" ]
    [ [Attribute action] -> [View model action] -> View model action
forall action model.
[Attribute action] -> [View model action] -> View model action
alert_ []
      [ View model action
forall model action. View model action
successIcon
      , [Attribute action] -> [View model action] -> View model action
forall action model.
[Attribute action] -> [View model action] -> View model action
alertHeader_ [] [ View model action
"Success!" ]
      , [Attribute action] -> [View model action] -> View model action
forall action model.
[Attribute action] -> [View model action] -> View model action
alertSection_ []
        [ View model action
"""
          Congratulations this is a
          successful alert !
          """
        ]
      ]
    , [Attribute action] -> [View model action] -> View model action
forall action model.
[Attribute action] -> [View model action] -> View model action
alert_
      [ MisoString -> Attribute action
forall action. MisoString -> Attribute action
P.class_ MisoString
"alert-destructive" ]
      [ View model action
forall model action. View model action
destructiveIcon
      , [Attribute action] -> [View model action] -> View model action
forall action model.
[Attribute action] -> [View model action] -> View model action
alertHeader_ [] [ View model action
"Warning!" ]
      , [Attribute action] -> [View model action] -> View model action
forall action model.
[Attribute action] -> [View model action] -> View model action
alertSection_ []
        [ View model action
"""
          Something bad happened :( you're getting
          a destructive alert!
          """
        ]
      ]
    ]
  ]
-----------------------------------------------------------------------------
alertCodeSample :: View model action
alertCodeSample :: forall model action. View model action
alertCodeSample =
  View model action
"""
  -----------------------------------------------------------------------------
  module MyAlert (alertSample) where
  -----------------------------------------------------------------------------
  import           Miso
  import qualified Miso.Html as H
  import qualified Miso.Html.Property as P
  -----------------------------------------------------------------------------
  import qualified Miso.UI.Alert as Alert
  -----------------------------------------------------------------------------
  alertSample :: View model action
  alertSample =
    H.div_
    [ P.class_ "p-4" ]
    [ H.div_
      [ P.class_ "grid max-w-xl items-start gap-4"
      ]
      [ Alert.alert_ []
        [ Alert.successIcon
        , Alert.alertHeader_ [] [ "Success!" ]
        , Alert.alertSection_ []
          [ \"\"\"
            Congratulations this is a
            successful alert !
            \"\"\"
          ]
        ]
      , Alert.alert_
        [ P.class_ "alert-destructive" ]
        [ Alert.destructiveIcon
        , Alert.alertHeader_ [] [ "Warning!" ]
        , Alert.alertSection_ []
          [ \"\"\"
            Something bad happened :( you're getting
            a destructive alert!
            \"\"\"
          ]
        ]
      ]
    ]
  """
-----------------------------------------------------------------------------