module Yesod.Bootstrap where import Prelude hiding (div) import Data.Foldable import Yesod.Core import Yesod.Core.Widget import Yesod.Core.Handler import Data.Text (Text) import Data.List import Data.Monoid import Control.Monad import Text.Blaze.Html (toHtml) import qualified Data.Text as Text import Control.Monad.Writer.Class import Control.Monad.Writer.Strict import qualified Data.List as List import qualified Text.Blaze.Html5 as H import qualified Text.Blaze.Html5.Attributes as HA import Data.Function (on) import Data.String (IsString(..)) import Data.Char (isDigit) import Text.Julius (rawJS) data Context = Success | Info | Warning | Danger | Default | Primary | Link | Error data Size = ExtraSmall | Small | Medium | Large data ColSize = ColSize Size Int data Flow = Block | Inline data Panel site = Panel { panelTitle :: (WidgetT site IO ()) , panelBody :: (WidgetT site IO ()) , panelContext :: Context } basicPanel :: Text -> WidgetT site IO () -> Panel site basicPanel t c = Panel (tw t) c Default div_ :: [(Text,Text)] -> WidgetT site IO () -> WidgetT site IO () div_ attrs inner = [whamlet|
^{inner}|] span_ :: [(Text,Text)] -> WidgetT site IO () -> WidgetT site IO () span_ attrs inner = [whamlet|^{inner}|] strong_ :: [(Text,Text)] -> WidgetT site IO () -> WidgetT site IO () strong_ attrs inner = [whamlet|$newline never ^{inner}|] em_ :: [(Text,Text)] -> WidgetT site IO () -> WidgetT site IO () em_ attrs inner = [whamlet|$newline never ^{inner}|] s_ :: [(Text,Text)] -> WidgetT site IO () -> WidgetT site IO () s_ attrs inner = [whamlet|^{inner}|] nav_ :: [(Text,Text)] -> WidgetT site IO () -> WidgetT site IO () nav_ attrs inner = [whamlet|