-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | A reactive frontend web framework -- -- A reactive frontend web framework. See haskell-front.org for more -- details. @package front @version 0.0.0.6 module Bridge -- | One specific and incomplete specifications of event-handlers geared -- towards their use with JS. data EventHandler a OnKeyDown :: !a -> EventHandler a OnKeyUp :: !a -> EventHandler a OnKeyPress :: !a -> EventHandler a OnEnter :: !a -> EventHandler a OnFocus :: !a -> EventHandler a OnBlur :: !a -> EventHandler a OnValueChange :: !a -> EventHandler a OnCheckedChange :: !a -> EventHandler a OnSelectedChange :: !a -> EventHandler a OnSubmit :: !a -> EventHandler a OnClick :: !a -> EventHandler a OnDoubleClick :: !a -> EventHandler a OnMouseDown :: !a -> EventHandler a OnMouseUp :: !a -> EventHandler a OnMouseMove :: !a -> EventHandler a OnMouseEnter :: !a -> EventHandler a OnMouseLeave :: !a -> EventHandler a OnMouseOver :: !a -> EventHandler a OnMouseOut :: !a -> EventHandler a OnScroll :: !a -> EventHandler a OnWheel :: !a -> EventHandler a data In a PingPong :: In a Send :: Action a -> In a AskEvents :: In a data Out a EmptyCmd :: Out a ExecuteClient :: ClientId -> ClientTask a -> ExecuteStrategy -> Out a data ExecuteStrategy ExecuteAll :: ExecuteStrategy ExecuteExcept :: ExecuteStrategy data ClientTask a ClientTask :: [RenderHtml] -> [CallbackAction a] -> ClientTask a [executeRenderHtml] :: ClientTask a -> [RenderHtml] [executeAction] :: ClientTask a -> [CallbackAction a] data RenderHtml AttachText :: ElementId -> HtmlText -> RenderHtml AttachDOM :: ElementId -> HtmlText -> RenderHtml data CallbackAction a CallbackAction :: EventHandler a -> CallbackAction a data Action a Action :: ElementId -> ActionType -> a -> Action a data ActionType RecordAction :: ActionType ObjectAction :: ActionType EnterAction :: ActionType type ElementId = Text type HtmlText = Text type ObjectId = Int type AttrId = Int type ClientId = Int type RowNumber = Int type RecordValue = Text -- | Pretty-printer for command expected from Client. ppIncomingCommand :: In a -> Text instance Data.Data.Data a => Data.Data.Data (Bridge.Out a) instance Data.Data.Data a => Data.Data.Data (Bridge.ClientTask a) instance Data.Data.Data Bridge.RenderHtml instance Data.Data.Data a => Data.Data.Data (Bridge.In a) instance Data.Data.Data a => Data.Data.Data (Bridge.Action a) instance GHC.Show.Show a => GHC.Show.Show (Bridge.Action a) instance Data.Data.Data Bridge.ActionType instance GHC.Show.Show Bridge.ActionType instance Data.Data.Data a => Data.Data.Data (Bridge.CallbackAction a) instance GHC.Classes.Eq Bridge.ExecuteStrategy instance Data.Data.Data Bridge.ExecuteStrategy instance Data.Data.Data a => Data.Data.Data (Bridge.EventHandler a) instance GHC.Base.Functor Bridge.EventHandler instance GHC.Show.Show a => GHC.Show.Show (Bridge.CallbackAction a) -- | The BlazeMarkup core, consisting of functions that offer the power to -- generate custom markup elements. It also offers user-centric -- functions, which are exposed through Blaze. -- -- While this module is exported, usage of it is not recommended, unless -- you know what you are doing. This module might undergo changes at any -- time. module Text.Blaze.Front.Internal data ChoiceString Static :: {-# UNPACK #-} !StaticString -> ChoiceString String :: String -> ChoiceString Text :: Text -> ChoiceString ByteString :: ByteString -> ChoiceString PreEscaped :: ChoiceString -> ChoiceString External :: ChoiceString -> ChoiceString AppendChoiceString :: ChoiceString -> ChoiceString -> ChoiceString EmptyChoiceString :: ChoiceString data StaticString StaticString :: (String -> String) -> ByteString -> Text -> StaticString [getString] :: StaticString -> String -> String [getUtf8ByteString] :: StaticString -> ByteString [getText] :: StaticString -> Text -- | The core Markup datatype. The ev type-parameter tracks the -- type of events that can be raised when this Markup is rendered. data MarkupM act a -- | Map all actions created by the inner Html. MapActions :: (act' -> act) -> MarkupM act' a -> MarkupM act a -- | Install event handlers for the given event on all immediate children. OnEvent :: EventHandler act -> MarkupM act a -> MarkupM act a -- | Tag, open tag, end tag, content Parent :: StaticString -> StaticString -> StaticString -> MarkupM act a -> MarkupM act a -- | Custom parent CustomParent :: ChoiceString -> MarkupM act a -> MarkupM act a -- | Tag, open tag, end tag Leaf :: StaticString -> StaticString -> StaticString -> MarkupM act a -- | Custom leaf CustomLeaf :: ChoiceString -> Bool -> MarkupM act a -- | HTML content Content :: ChoiceString -> MarkupM act a -- | Concatenation of two HTML pieces Append :: MarkupM act b -> MarkupM act c -> MarkupM act a -- | Add an attribute to the inner HTML. Raw key, key, value, HTML to -- receive the attribute. AddAttribute :: StaticString -> StaticString -> ChoiceString -> MarkupM act a -> MarkupM act a -- | Add a custom attribute to the inner HTML. AddCustomAttribute :: ChoiceString -> ChoiceString -> MarkupM act a -> MarkupM act a -- | Empty HTML. Empty :: MarkupM act a -- | Simplification of the MarkupM datatype. type Markup e = MarkupM e () -- | Type for an HTML tag. This can be seen as an internal string type used -- by BlazeMarkup. data Tag -- | Type for an attribute. newtype Attribute ev Attribute :: (forall a. MarkupM ev a -> MarkupM ev a) -> Attribute ev -- | The type for the value part of an attribute. newtype AttributeValue AttributeValue :: ChoiceString -> AttributeValue [unAttributeValue] :: AttributeValue -> ChoiceString -- | Create a custom parent element customParent :: Tag -> Markup ev -> Markup ev -- | Create a custom leaf element customLeaf :: Tag -> Bool -> Markup ev -- | Create an HTML attribute that can be applied to an HTML element later -- using the ! operator. attribute :: Tag -> Tag -> AttributeValue -> Attribute ev -- | From HTML 5 onwards, the user is able to specify custom data -- attributes. -- -- An example: -- --
--   <p data-foo="bar">Hello.</p>
--   
-- -- We support this in BlazeMarkup using this funcion. The above fragment -- could be described using BlazeMarkup with: -- --
--   p ! dataAttribute "foo" "bar" $ "Hello."
--   
dataAttribute :: Tag -> AttributeValue -> Attribute ev -- | Create a custom attribute. This is not specified in the HTML spec, but -- some JavaScript libraries rely on it. -- -- An example: -- --
--   <select dojoType="select">foo</select>
--   
-- -- Can be produced using: -- --
--   select ! customAttribute "dojoType" "select" $ "foo"
--   
customAttribute :: Tag -> AttributeValue -> Attribute ev -- | Render text. Functions like these can be used to supply content in -- HTML. text :: Text -> Markup ev -- | Render text without escaping. preEscapedText :: Text -> Markup ev -- | A variant of text for lazy Text. lazyText :: Text -> Markup ev -- | A variant of preEscapedText for lazy Text preEscapedLazyText :: Text -> Markup ev -- | Create an HTML snippet from a String. string :: String -> Markup ev -- | Create an HTML snippet from a String without escaping preEscapedString :: String -> Markup ev -- | Insert a ByteString. This is an unsafe operation: -- -- unsafeByteString :: ByteString -> Markup ev -- | Insert a lazy ByteString. See unsafeByteString for -- reasons why this is an unsafe operation. unsafeLazyByteString :: ByteString -> Markup ev -- | Create a Tag from some Text. textTag :: Text -> Tag -- | Create a Tag from a String. stringTag :: String -> Tag -- | Render an attribute value from Text. textValue :: Text -> AttributeValue -- | Render an attribute value from Text without escaping. preEscapedTextValue :: Text -> AttributeValue -- | A variant of textValue for lazy Text lazyTextValue :: Text -> AttributeValue -- | A variant of preEscapedTextValue for lazy Text preEscapedLazyTextValue :: Text -> AttributeValue -- | Create an attribute value from a String. stringValue :: String -> AttributeValue -- | Create an attribute value from a String without escaping. preEscapedStringValue :: String -> AttributeValue -- | Create an attribute value from a ByteString. See -- unsafeByteString for reasons why this might not be a good idea. unsafeByteStringValue :: ByteString -> AttributeValue -- | Create an attribute value from a lazy ByteString. See -- unsafeByteString for reasons why this might not be a good idea. unsafeLazyByteStringValue :: ByteString -> AttributeValue -- | Used for applying attributes. You should not define your own instances -- of this class. class Attributable h ev | h -> ev -- | Apply an attribute to an element. -- -- Example: -- --
--   img ! src "foo.png"
--   
-- -- Result: -- --
--   <img src="foo.png" />
--   
-- -- This can be used on nested elements as well. -- -- Example: -- --
--   p ! style "float: right" $ "Hello!"
--   
-- -- Result: -- --
--   <p style="float: right">Hello!</p>
--   
(!) :: Attributable h ev => h -> Attribute ev -> h -- | Shorthand for setting an attribute depending on a conditional. -- -- Example: -- --
--   p !? (isBig, A.class "big") $ "Hello"
--   
-- -- Gives the same result as: -- --
--   (if isBig then p ! A.class "big" else p) "Hello"
--   
(!?) :: Attributable h ev => h -> (Bool, Attribute ev) -> h -- | Take only the text content of an HTML tree. -- --
--   contents $ do
--       p ! $ "Hello "
--       p ! $ "Word!"
--   
-- -- Result: -- --
--   Hello World!
--   
contents :: MarkupM ev a -> MarkupM ev' b -- | Mark HTML as external data. External data can be: -- -- -- -- This function is applied automatically when using the style -- or script combinators. external :: MarkupM ev a -> MarkupM ev a -- | Check if a Markup value is completely empty (renders to the -- empty string). null :: MarkupM ev a -> Bool instance GHC.Base.Semigroup Text.Blaze.Front.Internal.AttributeValue instance GHC.Base.Monoid Text.Blaze.Front.Internal.AttributeValue instance Data.String.IsString Text.Blaze.Front.Internal.AttributeValue instance Data.String.IsString Text.Blaze.Front.Internal.Tag instance Text.Blaze.Front.Internal.Attributable (Text.Blaze.Front.Internal.MarkupM ev a) ev instance Text.Blaze.Front.Internal.Attributable (Text.Blaze.Front.Internal.MarkupM ev a -> Text.Blaze.Front.Internal.MarkupM ev b) ev instance GHC.Base.Monoid (Text.Blaze.Front.Internal.Attribute ev) instance GHC.Base.Semigroup (Text.Blaze.Front.Internal.Attribute ev) instance GHC.Base.Monoid a => GHC.Base.Monoid (Text.Blaze.Front.Internal.MarkupM ev a) instance GHC.Base.Semigroup a => GHC.Base.Semigroup (Text.Blaze.Front.Internal.MarkupM ev a) instance GHC.Base.Functor (Text.Blaze.Front.Internal.MarkupM ev) instance GHC.Base.Applicative (Text.Blaze.Front.Internal.MarkupM ev) instance GHC.Base.Monad (Text.Blaze.Front.Internal.MarkupM ev) instance Data.String.IsString (Text.Blaze.Front.Internal.MarkupM ev a) -- | This module exports combinators that provide you with the ability to -- set attributes on HTML elements. module Text.Blaze.Front.Html5.Attributes -- | Combinator for the accept attribute. -- -- Example: -- --
--   div ! accept "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div accept="bar">Hello.</div>
--   
accept :: AttributeValue -> Attribute ev -- | Combinator for the accessKey attribute. -- -- Example: -- --
--   div ! accesskey "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div accessKey="bar">Hello.</div>
--   
accesskey :: AttributeValue -> Attribute ev -- | Combinator for the action attribute. -- -- Example: -- --
--   div ! action "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div action="bar">Hello.</div>
--   
action :: AttributeValue -> Attribute ev -- | Combinator for the allowFullScreen attribute. -- -- Example: -- --
--   div ! allowfullscreen "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div allowFullScreen="bar">Hello.</div>
--   
allowfullscreen :: AttributeValue -> Attribute ev -- | Combinator for the allowTransparency attribute. -- -- Example: -- --
--   div ! allowtransparency "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div allowTransparency="bar">Hello.</div>
--   
allowtransparency :: AttributeValue -> Attribute ev -- | Combinator for the alt attribute. -- -- Example: -- --
--   div ! alt "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div alt="bar">Hello.</div>
--   
alt :: AttributeValue -> Attribute ev -- | Combinator for the async attribute. -- -- Example: -- --
--   div ! async "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div async="bar">Hello.</div>
--   
async :: AttributeValue -> Attribute ev -- | Create an HTML attribute that can be applied to an HTML element later -- using the ! operator. attribute :: Tag -> Tag -> AttributeValue -> Attribute ev -- | Combinator for the autoCapitalize attribute. -- -- Example: -- --
--   div ! autocapitalize "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div autoCapitalize="bar">Hello.</div>
--   
autocapitalize :: AttributeValue -> Attribute ev -- | Combinator for the autoComplete attribute. -- -- Example: -- --
--   div ! autocomplete "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div autoComplete="bar">Hello.</div>
--   
autocomplete :: AttributeValue -> Attribute ev -- | Combinator for the autoCorrect attribute. -- -- Example: -- --
--   div ! autocorrect "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div autoCorrect="bar">Hello.</div>
--   
autocorrect :: AttributeValue -> Attribute ev -- | Combinator for the autoFocus attribute. -- -- Example: -- --
--   div ! autofocus "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div autoFocus="bar">Hello.</div>
--   
autofocus :: AttributeValue -> Attribute ev -- | Combinator for the autoPlay attribute. -- -- Example: -- --
--   div ! autoplay "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div autoPlay="bar">Hello.</div>
--   
autoplay :: AttributeValue -> Attribute ev -- | Combinator for the cellPadding attribute. -- -- Example: -- --
--   div ! cellpadding "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div cellPadding="bar">Hello.</div>
--   
cellpadding :: AttributeValue -> Attribute ev -- | Combinator for the cellSpacing attribute. -- -- Example: -- --
--   div ! cellspacing "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div cellSpacing="bar">Hello.</div>
--   
cellspacing :: AttributeValue -> Attribute ev -- | Combinator for the charSet attribute. -- -- Example: -- --
--   div ! charset "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div charSet="bar">Hello.</div>
--   
charset :: AttributeValue -> Attribute ev -- | Combinator for the checked attribute. -- -- Example: -- --
--   div ! checked "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div checked="bar">Hello.</div>
--   
checked :: AttributeValue -> Attribute ev -- | Combinator for the className attribute. -- -- Example: -- --
--   div ! class_ "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div className="bar">Hello.</div>
--   
class_ :: AttributeValue -> Attribute ev -- | Combinator for the colSpan attribute. -- -- Example: -- --
--   div ! colspan "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div colSpan="bar">Hello.</div>
--   
colspan :: AttributeValue -> Attribute ev -- | Combinator for the cols attribute. -- -- Example: -- --
--   div ! cols "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div cols="bar">Hello.</div>
--   
cols :: AttributeValue -> Attribute ev -- | Combinator for the content attribute. -- -- Example: -- --
--   div ! content "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div content="bar">Hello.</div>
--   
content :: AttributeValue -> Attribute ev -- | Combinator for the contentEditable attribute. -- -- Example: -- --
--   div ! contenteditable "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div contentEditable="bar">Hello.</div>
--   
contenteditable :: AttributeValue -> Attribute ev -- | Combinator for the contextMenu attribute. -- -- Example: -- --
--   div ! contextmenu "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div contextMenu="bar">Hello.</div>
--   
contextmenu :: AttributeValue -> Attribute ev -- | Combinator for the controls attribute. -- -- Example: -- --
--   div ! controls "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div controls="bar">Hello.</div>
--   
controls :: AttributeValue -> Attribute ev -- | Combinator for the coords attribute. -- -- Example: -- --
--   div ! coords "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div coords="bar">Hello.</div>
--   
coords :: AttributeValue -> Attribute ev -- | Combinator for the crossOrigin attribute. -- -- Example: -- --
--   div ! crossorigin "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div crossOrigin="bar">Hello.</div>
--   
crossorigin :: AttributeValue -> Attribute ev -- | Combinator for the data attribute. -- -- Example: -- --
--   div ! data_ "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div data="bar">Hello.</div>
--   
data_ :: AttributeValue -> Attribute ev -- | Combinator for the dateTime attribute. -- -- Example: -- --
--   div ! datetime "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div dateTime="bar">Hello.</div>
--   
datetime :: AttributeValue -> Attribute ev -- | Combinator for the defer attribute. -- -- Example: -- --
--   div ! defer "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div defer="bar">Hello.</div>
--   
defer :: AttributeValue -> Attribute ev -- | Combinator for the dir attribute. -- -- Example: -- --
--   div ! dir "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div dir="bar">Hello.</div>
--   
dir :: AttributeValue -> Attribute ev -- | Combinator for the disabled attribute. -- -- Example: -- --
--   div ! disabled "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div disabled="bar">Hello.</div>
--   
disabled :: AttributeValue -> Attribute ev -- | Combinator for the download attribute. -- -- Example: -- --
--   div ! download "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div download="bar">Hello.</div>
--   
download :: AttributeValue -> Attribute ev -- | Combinator for the draggable attribute. -- -- Example: -- --
--   div ! draggable "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div draggable="bar">Hello.</div>
--   
draggable :: AttributeValue -> Attribute ev -- | Combinator for the encType attribute. -- -- Example: -- --
--   div ! enctype "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div encType="bar">Hello.</div>
--   
enctype :: AttributeValue -> Attribute ev -- | Combinator for the form attribute. -- -- Example: -- --
--   div ! form "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div form="bar">Hello.</div>
--   
form :: AttributeValue -> Attribute ev -- | Combinator for the formNoValidate attribute. -- -- Example: -- --
--   div ! formnovalidate "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div formNoValidate="bar">Hello.</div>
--   
formnovalidate :: AttributeValue -> Attribute ev -- | Combinator for the frameBorder attribute. -- -- Example: -- --
--   div ! frameborder "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div frameBorder="bar">Hello.</div>
--   
frameborder :: AttributeValue -> Attribute ev -- | Combinator for the height attribute. -- -- Example: -- --
--   div ! height "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div height="bar">Hello.</div>
--   
height :: AttributeValue -> Attribute ev -- | Combinator for the hidden attribute. -- -- Example: -- --
--   div ! hidden "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div hidden="bar">Hello.</div>
--   
hidden :: AttributeValue -> Attribute ev -- | Combinator for the href attribute. -- -- Example: -- --
--   div ! href "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div href="bar">Hello.</div>
--   
href :: AttributeValue -> Attribute ev -- | Combinator for the hrefLang attribute. -- -- Example: -- --
--   div ! hreflang "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div hrefLang="bar">Hello.</div>
--   
hreflang :: AttributeValue -> Attribute ev -- | Combinator for the htmlFor attribute. -- -- Example: -- --
--   div ! for "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div htmlFor="bar">Hello.</div>
--   
for :: AttributeValue -> Attribute ev -- | Combinator for the httpEquiv attribute. -- -- Example: -- --
--   div ! httpequiv "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div httpEquiv="bar">Hello.</div>
--   
httpequiv :: AttributeValue -> Attribute ev -- | Combinator for the icon attribute. -- -- Example: -- --
--   div ! icon "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div icon="bar">Hello.</div>
--   
icon :: AttributeValue -> Attribute ev -- | Combinator for the id attribute. -- -- Example: -- --
--   div ! id "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div id="bar">Hello.</div>
--   
id :: AttributeValue -> Attribute ev -- | Combinator for the itemProp attribute. -- -- Example: -- --
--   div ! itemprop "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div itemProp="bar">Hello.</div>
--   
itemprop :: AttributeValue -> Attribute ev -- | Combinator for the itemScope attribute. -- -- Example: -- --
--   div ! itemscope "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div itemScope="bar">Hello.</div>
--   
itemscope :: AttributeValue -> Attribute ev -- | Combinator for the itemType attribute. -- -- Example: -- --
--   div ! itemtype "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div itemType="bar">Hello.</div>
--   
itemtype :: AttributeValue -> Attribute ev -- | Combinator for the key attribute. -- -- Example: -- --
--   div ! key "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div key="bar">Hello.</div>
--   
key :: AttributeValue -> Attribute ev -- | Combinator for the label attribute. -- -- Example: -- --
--   div ! label "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div label="bar">Hello.</div>
--   
label :: AttributeValue -> Attribute ev -- | Combinator for the lang attribute. -- -- Example: -- --
--   div ! lang "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div lang="bar">Hello.</div>
--   
lang :: AttributeValue -> Attribute ev -- | Combinator for the list attribute. -- -- Example: -- --
--   div ! list "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div list="bar">Hello.</div>
--   
list :: AttributeValue -> Attribute ev -- | Combinator for the loop attribute. -- -- Example: -- --
--   div ! loop "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div loop="bar">Hello.</div>
--   
loop :: AttributeValue -> Attribute ev -- | Combinator for the max attribute. -- -- Example: -- --
--   div ! max "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div max="bar">Hello.</div>
--   
max :: AttributeValue -> Attribute ev -- | Combinator for the maxLength attribute. -- -- Example: -- --
--   div ! maxlength "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div maxLength="bar">Hello.</div>
--   
maxlength :: AttributeValue -> Attribute ev -- | Combinator for the mediaGroup attribute. -- -- Example: -- --
--   div ! mediagroup "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div mediaGroup="bar">Hello.</div>
--   
mediagroup :: AttributeValue -> Attribute ev -- | Combinator for the method attribute. -- -- Example: -- --
--   div ! method "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div method="bar">Hello.</div>
--   
method :: AttributeValue -> Attribute ev -- | Combinator for the min attribute. -- -- Example: -- --
--   div ! min "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div min="bar">Hello.</div>
--   
min :: AttributeValue -> Attribute ev -- | Combinator for the multiple attribute. -- -- Example: -- --
--   div ! multiple "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div multiple="bar">Hello.</div>
--   
multiple :: AttributeValue -> Attribute ev -- | Combinator for the muted attribute. -- -- Example: -- --
--   div ! muted "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div muted="bar">Hello.</div>
--   
muted :: AttributeValue -> Attribute ev -- | Combinator for the name attribute. -- -- Example: -- --
--   div ! name "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div name="bar">Hello.</div>
--   
name :: AttributeValue -> Attribute ev -- | Combinator for the noValidate attribute. -- -- Example: -- --
--   div ! novalidate "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div noValidate="bar">Hello.</div>
--   
novalidate :: AttributeValue -> Attribute ev -- | Combinator for the pattern attribute. -- -- Example: -- --
--   div ! pattern "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div pattern="bar">Hello.</div>
--   
pattern :: AttributeValue -> Attribute ev -- | Combinator for the placeholder attribute. -- -- Example: -- --
--   div ! placeholder "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div placeholder="bar">Hello.</div>
--   
placeholder :: AttributeValue -> Attribute ev -- | Combinator for the poster attribute. -- -- Example: -- --
--   div ! poster "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div poster="bar">Hello.</div>
--   
poster :: AttributeValue -> Attribute ev -- | Combinator for the preload attribute. -- -- Example: -- --
--   div ! preload "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div preload="bar">Hello.</div>
--   
preload :: AttributeValue -> Attribute ev -- | Combinator for the property attribute. -- -- Example: -- --
--   div ! property "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div property="bar">Hello.</div>
--   
property :: AttributeValue -> Attribute ev -- | Combinator for the radioGroup attribute. -- -- Example: -- --
--   div ! radiogroup "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div radioGroup="bar">Hello.</div>
--   
radiogroup :: AttributeValue -> Attribute ev -- | Combinator for the readOnly attribute. -- -- Example: -- --
--   div ! readonly "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div readOnly="bar">Hello.</div>
--   
readonly :: AttributeValue -> Attribute ev -- | Combinator for the rel attribute. -- -- Example: -- --
--   div ! rel "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div rel="bar">Hello.</div>
--   
rel :: AttributeValue -> Attribute ev -- | Combinator for the required attribute. -- -- Example: -- --
--   div ! required "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div required="bar">Hello.</div>
--   
required :: AttributeValue -> Attribute ev -- | Combinator for the role attribute. -- -- Example: -- --
--   div ! role "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div role="bar">Hello.</div>
--   
role :: AttributeValue -> Attribute ev -- | Combinator for the rowSpan attribute. -- -- Example: -- --
--   div ! rowspan "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div rowSpan="bar">Hello.</div>
--   
rowspan :: AttributeValue -> Attribute ev -- | Combinator for the rows attribute. -- -- Example: -- --
--   div ! rows "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div rows="bar">Hello.</div>
--   
rows :: AttributeValue -> Attribute ev -- | Combinator for the sandbox attribute. -- -- Example: -- --
--   div ! sandbox "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div sandbox="bar">Hello.</div>
--   
sandbox :: AttributeValue -> Attribute ev -- | Combinator for the scope attribute. -- -- Example: -- --
--   div ! scope "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div scope="bar">Hello.</div>
--   
scope :: AttributeValue -> Attribute ev -- | Combinator for the scrollLeft attribute. -- -- Example: -- --
--   div ! scrollleft "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div scrollLeft="bar">Hello.</div>
--   
scrollleft :: AttributeValue -> Attribute ev -- | Combinator for the scrollTop attribute. -- -- Example: -- --
--   div ! scrolltop "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div scrollTop="bar">Hello.</div>
--   
scrolltop :: AttributeValue -> Attribute ev -- | Combinator for the scrolling attribute. -- -- Example: -- --
--   div ! scrolling "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div scrolling="bar">Hello.</div>
--   
scrolling :: AttributeValue -> Attribute ev -- | Combinator for the seamless attribute. -- -- Example: -- --
--   div ! seamless "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div seamless="bar">Hello.</div>
--   
seamless :: AttributeValue -> Attribute ev -- | Combinator for the selected attribute. -- -- Example: -- --
--   div ! selected "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div selected="bar">Hello.</div>
--   
selected :: AttributeValue -> Attribute ev -- | Combinator for the shape attribute. -- -- Example: -- --
--   div ! shape "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div shape="bar">Hello.</div>
--   
shape :: AttributeValue -> Attribute ev -- | Combinator for the size attribute. -- -- Example: -- --
--   div ! size "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div size="bar">Hello.</div>
--   
size :: AttributeValue -> Attribute ev -- | Combinator for the span attribute. -- -- Example: -- --
--   div ! span "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div span="bar">Hello.</div>
--   
span :: AttributeValue -> Attribute ev -- | Combinator for the spellCheck attribute. -- -- Example: -- --
--   div ! spellcheck "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div spellCheck="bar">Hello.</div>
--   
spellcheck :: AttributeValue -> Attribute ev -- | Combinator for the src attribute. -- -- Example: -- --
--   div ! src "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div src="bar">Hello.</div>
--   
src :: AttributeValue -> Attribute ev -- | Combinator for the srcDoc attribute. -- -- Example: -- --
--   div ! srcdoc "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div srcDoc="bar">Hello.</div>
--   
srcdoc :: AttributeValue -> Attribute ev -- | Combinator for the srcSet attribute. -- -- Example: -- --
--   div ! srcset "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div srcSet="bar">Hello.</div>
--   
srcset :: AttributeValue -> Attribute ev -- | Combinator for the start attribute. -- -- Example: -- --
--   div ! start "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div start="bar">Hello.</div>
--   
start :: AttributeValue -> Attribute ev -- | Combinator for the step attribute. -- -- Example: -- --
--   div ! step "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div step="bar">Hello.</div>
--   
step :: AttributeValue -> Attribute ev -- | Combinator for the style attribute. style :: AttributeValue -> Attribute ev -- | Combinator for the tabIndex attribute. -- -- Example: -- --
--   div ! tabindex "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div tabIndex="bar">Hello.</div>
--   
tabindex :: AttributeValue -> Attribute ev -- | Combinator for the target attribute. -- -- Example: -- --
--   div ! target "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div target="bar">Hello.</div>
--   
target :: AttributeValue -> Attribute ev -- | Combinator for the title attribute. -- -- Example: -- --
--   div ! title "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div title="bar">Hello.</div>
--   
title :: AttributeValue -> Attribute ev -- | Combinator for the type attribute. -- -- Example: -- --
--   div ! type_ "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div type="bar">Hello.</div>
--   
type_ :: AttributeValue -> Attribute ev -- | Combinator for the useMap attribute. -- -- Example: -- --
--   div ! usemap "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div useMap="bar">Hello.</div>
--   
usemap :: AttributeValue -> Attribute ev -- | Combinator for the value attribute. -- -- Example: -- --
--   div ! value "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div value="bar">Hello.</div>
--   
value :: AttributeValue -> Attribute ev -- | Combinator for the width attribute. -- -- Example: -- --
--   div ! width "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div width="bar">Hello.</div>
--   
width :: AttributeValue -> Attribute ev -- | Combinator for the wmode attribute. -- -- Example: -- --
--   div ! wmode "bar" $ "Hello."
--   
-- -- Result: -- --
--   <div wmode="bar">Hello.</div>
--   
wmode :: AttributeValue -> Attribute ev module Text.Blaze.Front.Event -- | Modify all event handlers attached to a Markup tree so that the -- given function is applied to the return values of their callbacks. mapActions :: (act -> act') -> Markup act -> Markup act' -- | The user has pressed a physical key while the target element was -- focused. onKeyDown :: act -> Attribute act -- | The user has released a phyiscal key while the target element was -- focused. onKeyUp :: act -> Attribute act -- | The user has input some ASCII character while the target element was -- focused. onKeyPress :: act -> Attribute act -- | The user has pressed Enter while the target element was -- focused. onEnter :: act -> Attribute act -- | The focus has moved to the target element. onFocus :: act -> Attribute act -- | The focus has left the target element. onBlur :: act -> Attribute act -- | The value property of the target element has changed. The new -- value is passed as a parameter to the callback. This handler is -- supported for input, textarea, and select -- elements. onValueChange :: act -> Attribute act -- | The checked property of the target element has changed. This -- handler is supported for input elements of type -- checkbox or radio. onCheckedChange :: act -> Attribute act -- | The selected property of the the target element has changed. -- This handler is supported for option elements. onSelectedChange :: act -> Attribute act -- | The user has submitted the target form. This handler is supported for -- form elements. onSubmit :: act -> Attribute act -- | A simplified version of onClick which watches for the -- LeftButton only and ignores the cursor position. onClick :: act -> Attribute act -- | A simplified version of onDoubleClick which watches for the -- LeftButton only and ignores the cursor position. onDoubleClick :: act -> Attribute act -- | A simplified version of onMouseDown which watches for the -- LeftButton only and ignores the cursor position. onMouseDown :: act -> Attribute act -- | A simplified version of onMouseUp which watches for the -- LeftButton only and ignores the cursor position. onMouseUp :: act -> Attribute act -- | The mouse cursor has moved while positioned over the target element. -- The mouse position at the time the event was fired is passed as a -- parameter to the callback. onMouseMove :: act -> Attribute act -- | The mouse cursor has entered the region occupied by the target -- element. The mouse position at the time the event was fired is passed -- as a parameter to the callback. onMouseEnter :: act -> Attribute act -- | The mouse cursor has left the region occupied by the target element. -- The mouse position at the time the event was fired is passed as a -- parameter to the callback. onMouseLeave :: act -> Attribute act -- | Like MouseEnter, but handles bubbling differently. onMouseOver :: act -> Attribute act -- | Like MouseLeave, but handles bubbling differently. onMouseOut :: act -> Attribute act -- | The the scroll-position of the page has changed. The amount by which -- it has changed (in lines) is passed as a parameter to the callback. onScroll :: act -> Attribute act -- | The user has moved the scroll-wheel. The amount by which the scroll -- position of an infinitely large page is affected is passed as a -- parameter to the callback. onWheel :: act -> Attribute act -- | BlazeMarkup is a markup combinator library. It provides a way to embed -- markup languages like HTML and SVG in Haskell in an efficient and -- convenient way, with a light-weight syntax. -- -- To use the library, one needs to import a set of combinators. For -- example, you can use HTML 4 Strict from BlazeHtml package. -- --
--   {-# LANGUAGE OverloadedStrings #-}
--   import Prelude hiding (head, id, div)
--   import Text.Blaze.Html4.Strict hiding (map)
--   import Text.Blaze.Html4.Strict.Attributes hiding (title)
--   
-- -- To render the page later on, you need a so called Renderer. The -- recommended renderer is an UTF-8 renderer which produces a lazy -- bytestring. -- --
--   import Text.Blaze.Renderer.Utf8 (renderMarkup)
--   
-- -- Now, you can describe pages using the imported combinators. -- --
--   page1 :: Markup
--   page1 = html $ do
--       head $ do
--           title "Introduction page."
--           link ! rel "stylesheet" ! type_ "text/css" ! href "screen.css"
--       body $ do
--           div ! id "header" $ "Syntax"
--           p "This is an example of BlazeMarkup syntax."
--           ul $ mapM_ (li . toMarkup . show) [1, 2, 3]
--   
-- -- The resulting HTML can now be extracted using: -- --
--   renderMarkup page1
--   
module Text.Blaze.Front -- | Simplification of the MarkupM datatype. type Markup e = MarkupM e () -- | Type for an HTML tag. This can be seen as an internal string type used -- by BlazeMarkup. data Tag -- | Type for an attribute. data Attribute ev -- | The type for the value part of an attribute. data AttributeValue -- | From HTML 5 onwards, the user is able to specify custom data -- attributes. -- -- An example: -- --
--   <p data-foo="bar">Hello.</p>
--   
-- -- We support this in BlazeMarkup using this funcion. The above fragment -- could be described using BlazeMarkup with: -- --
--   p ! dataAttribute "foo" "bar" $ "Hello."
--   
dataAttribute :: Tag -> AttributeValue -> Attribute ev -- | Create a custom attribute. This is not specified in the HTML spec, but -- some JavaScript libraries rely on it. -- -- An example: -- --
--   <select dojoType="select">foo</select>
--   
-- -- Can be produced using: -- --
--   select ! customAttribute "dojoType" "select" $ "foo"
--   
customAttribute :: Tag -> AttributeValue -> Attribute ev -- | Class allowing us to use a single function for Markup values class ToMarkup a -- | Convert a value to Markup. toMarkup :: ToMarkup a => a -> Markup ev -- | Convert a value to Markup without escaping preEscapedToMarkup :: ToMarkup a => a -> Markup ev -- | Insert a ByteString. This is an unsafe operation: -- -- unsafeByteString :: ByteString -> Markup ev -- | Insert a lazy ByteString. See unsafeByteString for -- reasons why this is an unsafe operation. unsafeLazyByteString :: ByteString -> Markup ev -- | Create a Tag from some Text. textTag :: Text -> Tag -- | Create a Tag from a String. stringTag :: String -> Tag -- | Class allowing us to use a single function for attribute values class ToValue a -- | Convert a value to an attribute value toValue :: ToValue a => a -> AttributeValue -- | Convert a value to an attribute value without escaping preEscapedToValue :: ToValue a => a -> AttributeValue -- | Create an attribute value from a ByteString. See -- unsafeByteString for reasons why this might not be a good idea. unsafeByteStringValue :: ByteString -> AttributeValue -- | Create an attribute value from a lazy ByteString. See -- unsafeByteString for reasons why this might not be a good idea. unsafeLazyByteStringValue :: ByteString -> AttributeValue -- | Apply an attribute to an element. -- -- Example: -- --
--   img ! src "foo.png"
--   
-- -- Result: -- --
--   <img src="foo.png" />
--   
-- -- This can be used on nested elements as well. -- -- Example: -- --
--   p ! style "float: right" $ "Hello!"
--   
-- -- Result: -- --
--   <p style="float: right">Hello!</p>
--   
(!) :: Attributable h ev => h -> Attribute ev -> h -- | Shorthand for setting an attribute depending on a conditional. -- -- Example: -- --
--   p !? (isBig, A.class "big") $ "Hello"
--   
-- -- Gives the same result as: -- --
--   (if isBig then p ! A.class "big" else p) "Hello"
--   
(!?) :: Attributable h ev => h -> (Bool, Attribute ev) -> h -- | Take only the text content of an HTML tree. -- --
--   contents $ do
--       p ! $ "Hello "
--       p ! $ "Word!"
--   
-- -- Result: -- --
--   Hello World!
--   
contents :: MarkupM ev a -> MarkupM ev' b instance Text.Blaze.Front.ToValue Text.Blaze.Front.Internal.AttributeValue instance Text.Blaze.Front.ToValue Data.Text.Internal.Text instance Text.Blaze.Front.ToValue Data.Text.Internal.Lazy.Text instance Text.Blaze.Front.ToValue GHC.Base.String instance Text.Blaze.Front.ToValue GHC.Types.Int instance Text.Blaze.Front.ToValue GHC.Int.Int32 instance Text.Blaze.Front.ToValue GHC.Int.Int64 instance Text.Blaze.Front.ToValue GHC.Types.Char instance Text.Blaze.Front.ToValue GHC.Types.Bool instance Text.Blaze.Front.ToValue GHC.Integer.Type.Integer instance Text.Blaze.Front.ToValue GHC.Types.Float instance Text.Blaze.Front.ToValue GHC.Types.Double instance Text.Blaze.Front.ToValue GHC.Types.Word instance Text.Blaze.Front.ToValue GHC.Word.Word32 instance Text.Blaze.Front.ToValue GHC.Word.Word64 instance Text.Blaze.Front.ToMarkup Data.Text.Internal.Text instance Text.Blaze.Front.ToMarkup Data.Text.Internal.Lazy.Text instance Text.Blaze.Front.ToMarkup GHC.Base.String instance Text.Blaze.Front.ToMarkup GHC.Types.Int instance Text.Blaze.Front.ToMarkup GHC.Int.Int32 instance Text.Blaze.Front.ToMarkup GHC.Int.Int64 instance Text.Blaze.Front.ToMarkup GHC.Types.Char instance Text.Blaze.Front.ToMarkup GHC.Types.Bool instance Text.Blaze.Front.ToMarkup GHC.Integer.Type.Integer instance Text.Blaze.Front.ToMarkup GHC.Types.Float instance Text.Blaze.Front.ToMarkup GHC.Types.Double instance Text.Blaze.Front.ToMarkup GHC.Types.Word instance Text.Blaze.Front.ToMarkup GHC.Word.Word32 instance Text.Blaze.Front.ToMarkup GHC.Word.Word64 -- | A preliminary renderer that produces JS components when run -- using Fay. module Text.Blaze.Front.Renderer -- | Escape predefined XML entities in a text value escapeMarkupEntities :: Text -> Builder -- | Render a ChoiceString. fromChoiceString :: ChoiceString -> Builder -> Builder -- | Render some Markup to a virtual dom. -- -- This function is morally pure. render :: Show act => Markup act -> Builder -> Builder renderHtml :: Show act => Markup act -> String -- | JS defines the following event types: data EventType OnCopyE :: EventType OnCutE :: EventType OnPasteE :: EventType OnKeyDownE :: EventType OnKeyPressE :: EventType OnKeyUpE :: EventType OnFocusE :: EventType OnBlurE :: EventType OnChangeE :: EventType OnInputE :: EventType OnSubmitE :: EventType OnClickE :: EventType OnDoubleClickE :: EventType OnDragE :: EventType OnDragEndE :: EventType OnDragEnterE :: EventType OnDragExitE :: EventType OnDragLeaveE :: EventType OnDragOverE :: EventType OnDragStartE :: EventType OnDropE :: EventType OnMouseDownE :: EventType OnMouseEnterE :: EventType OnMouseLeaveE :: EventType OnMouseMoveE :: EventType OnMouseOutE :: EventType OnMouseOverE :: EventType OnMouseUpE :: EventType OnTouchCancelE :: EventType OnTouchEndE :: EventType OnTouchMoveE :: EventType OnTouchStartE :: EventType OnScrollE :: EventType OnWheelE :: EventType eventName :: EventType -> String data Handler IgnoreEvent :: Handler -- | Contains an IO action which generates the callback to attach to the -- event HandleEvent :: IO (Bool -> IO ()) -> Handler registerEvents :: Markup a -> [CallbackAction a] -> [CallbackAction a] renderNewMarkup :: Show act => Markup act -> Html -- | This module exports SVG combinators. module Text.Blaze.Front.Svg type Svg ev = Markup ev toSvg :: ToMarkup a => a -> Svg ev preEscapedToSvg :: ToMarkup a => a -> Svg ev circle :: Svg ev defs :: Svg ev -> Svg ev ellipse :: Svg ev g :: Svg ev -> Svg ev line :: Svg ev linearGradient :: Svg ev -> Svg ev mask :: Svg ev -> Svg ev path :: Svg ev pattern :: Svg ev -> Svg ev polygon :: Svg ev polyline :: Svg ev radialGradient :: Svg ev -> Svg ev rect :: Svg ev stop :: Svg ev text :: Svg ev -> Svg ev tspan :: Svg ev -> Svg ev -- | This module exports HTML combinators used to create documents. module Text.Blaze.Front.Html5 type Html ev = Markup ev toHtml :: ToMarkup a => a -> Html ev preEscapedToHtml :: ToMarkup a => a -> Html ev -- | Combinator for the document type. This should be placed at the top of -- every HTML page. -- -- Example: -- --
--   docType
--   
-- -- Result: -- --
--   <!DOCTYPE HTML>
--   
docType :: Html ev -- | Combinator for the <html> element. This combinator will -- also insert the correct doctype. -- -- Example: -- --
--   docTypeHtml $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <!DOCTYPE HTML>
--   <html><span>foo</span></html>
--   
docTypeHtml :: Html ev -> Html ev -- | Combinator for the <a> element. -- -- Example: -- --
--   a $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <a><span>foo</span></a>
--   
a :: Html ev -> Html ev -- | Combinator for the <abbr> element. -- -- Example: -- --
--   abbr $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <abbr><span>foo</span></abbr>
--   
abbr :: Html ev -> Html ev -- | Combinator for the <address> element. -- -- Example: -- --
--   address $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <address><span>foo</span></address>
--   
address :: Html ev -> Html ev -- | Combinator for the <area /> element. -- -- Example: -- --
--   area
--   
-- -- Result: -- --
--   <area />
--   
area :: Html ev -- | Combinator for the <article> element. -- -- Example: -- --
--   article $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <article><span>foo</span></article>
--   
article :: Html ev -> Html ev -- | Combinator for the <aside> element. -- -- Example: -- --
--   aside $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <aside><span>foo</span></aside>
--   
aside :: Html ev -> Html ev -- | Combinator for the <audio> element. -- -- Example: -- --
--   audio $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <audio><span>foo</span></audio>
--   
audio :: Html ev -> Html ev -- | Combinator for the <b> element. -- -- Example: -- --
--   b $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <b><span>foo</span></b>
--   
b :: Html ev -> Html ev -- | Combinator for the <base /> element. -- -- Example: -- --
--   base
--   
-- -- Result: -- --
--   <base />
--   
base :: Html ev -- | Combinator for the <bdo> element. -- -- Example: -- --
--   bdo $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <bdo><span>foo</span></bdo>
--   
bdo :: Html ev -> Html ev -- | Combinator for the <blockquote> element. -- -- Example: -- --
--   blockquote $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <blockquote><span>foo</span></blockquote>
--   
blockquote :: Html ev -> Html ev -- | Combinator for the <body> element. -- -- Example: -- --
--   body $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <body><span>foo</span></body>
--   
body :: Html ev -> Html ev -- | Combinator for the <br /> element. -- -- Example: -- --
--   br
--   
-- -- Result: -- --
--   <br />
--   
br :: Html ev -- | Combinator for the <button> element. -- -- Example: -- --
--   button $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <button><span>foo</span></button>
--   
button :: Html ev -> Html ev -- | Combinator for the <canvas> element. -- -- Example: -- --
--   canvas $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <canvas><span>foo</span></canvas>
--   
canvas :: Html ev -> Html ev -- | Combinator for the <caption> element. -- -- Example: -- --
--   caption $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <caption><span>foo</span></caption>
--   
caption :: Html ev -> Html ev -- | Combinator for the <cite> element. -- -- Example: -- --
--   cite $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <cite><span>foo</span></cite>
--   
cite :: Html ev -> Html ev -- | Combinator for the <code> element. -- -- Example: -- --
--   code $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <code><span>foo</span></code>
--   
code :: Html ev -> Html ev -- | Combinator for the <col /> element. -- -- Example: -- --
--   col
--   
-- -- Result: -- --
--   <col />
--   
col :: Html ev -- | Combinator for the <colgroup> element. -- -- Example: -- --
--   colgroup $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <colgroup><span>foo</span></colgroup>
--   
colgroup :: Html ev -> Html ev -- | Combinator for the <command> element. -- -- Example: -- --
--   command $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <command><span>foo</span></command>
--   
command :: Html ev -> Html ev -- | Combinator for the <datalist> element. -- -- Example: -- --
--   datalist $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <datalist><span>foo</span></datalist>
--   
datalist :: Html ev -> Html ev -- | Combinator for the <dd> element. -- -- Example: -- --
--   dd $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <dd><span>foo</span></dd>
--   
dd :: Html ev -> Html ev -- | Combinator for the <del> element. -- -- Example: -- --
--   del $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <del><span>foo</span></del>
--   
del :: Html ev -> Html ev -- | Combinator for the <details> element. -- -- Example: -- --
--   details $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <details><span>foo</span></details>
--   
details :: Html ev -> Html ev -- | Combinator for the <dfn> element. -- -- Example: -- --
--   dfn $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <dfn><span>foo</span></dfn>
--   
dfn :: Html ev -> Html ev -- | Combinator for the <div> element. -- -- Example: -- --
--   div $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <div><span>foo</span></div>
--   
div :: Html ev -> Html ev -- | Combinator for the <dl> element. -- -- Example: -- --
--   dl $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <dl><span>foo</span></dl>
--   
dl :: Html ev -> Html ev -- | Combinator for the <dt> element. -- -- Example: -- --
--   dt $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <dt><span>foo</span></dt>
--   
dt :: Html ev -> Html ev -- | Combinator for the <em> element. -- -- Example: -- --
--   em $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <em><span>foo</span></em>
--   
em :: Html ev -> Html ev -- | Combinator for the <embed /> element. -- -- Example: -- --
--   embed
--   
-- -- Result: -- --
--   <embed />
--   
embed :: Html ev -- | Combinator for the <fieldset> element. -- -- Example: -- --
--   fieldset $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <fieldset><span>foo</span></fieldset>
--   
fieldset :: Html ev -> Html ev -- | Combinator for the <figcaption> element. -- -- Example: -- --
--   figcaption $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <figcaption><span>foo</span></figcaption>
--   
figcaption :: Html ev -> Html ev -- | Combinator for the <figure> element. -- -- Example: -- --
--   figure $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <figure><span>foo</span></figure>
--   
figure :: Html ev -> Html ev -- | Combinator for the <footer> element. -- -- Example: -- --
--   footer $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <footer><span>foo</span></footer>
--   
footer :: Html ev -> Html ev -- | Combinator for the <form> element. -- -- Example: -- --
--   form $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <form><span>foo</span></form>
--   
form :: Html ev -> Html ev -- | Combinator for the <h1> element. -- -- Example: -- --
--   h1 $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <h1><span>foo</span></h1>
--   
h1 :: Html ev -> Html ev -- | Combinator for the <h2> element. -- -- Example: -- --
--   h2 $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <h2><span>foo</span></h2>
--   
h2 :: Html ev -> Html ev -- | Combinator for the <h3> element. -- -- Example: -- --
--   h3 $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <h3><span>foo</span></h3>
--   
h3 :: Html ev -> Html ev -- | Combinator for the <h4> element. -- -- Example: -- --
--   h4 $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <h4><span>foo</span></h4>
--   
h4 :: Html ev -> Html ev -- | Combinator for the <h5> element. -- -- Example: -- --
--   h5 $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <h5><span>foo</span></h5>
--   
h5 :: Html ev -> Html ev -- | Combinator for the <h6> element. -- -- Example: -- --
--   h6 $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <h6><span>foo</span></h6>
--   
h6 :: Html ev -> Html ev -- | Combinator for the <head> element. -- -- Example: -- --
--   head $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <head><span>foo</span></head>
--   
head :: Html ev -> Html ev -- | Combinator for the <header> element. -- -- Example: -- --
--   header $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <header><span>foo</span></header>
--   
header :: Html ev -> Html ev -- | Combinator for the <hgroup> element. -- -- Example: -- --
--   hgroup $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <hgroup><span>foo</span></hgroup>
--   
hgroup :: Html ev -> Html ev -- | Combinator for the <hr /> element. -- -- Example: -- --
--   hr
--   
-- -- Result: -- --
--   <hr />
--   
hr :: Html ev -- | Combinator for the <html> element. -- -- Example: -- --
--   html $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <html><span>foo</span></html>
--   
html :: Html ev -> Html ev -- | Combinator for the <i> element. -- -- Example: -- --
--   i $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <i><span>foo</span></i>
--   
i :: Html ev -> Html ev -- | Combinator for the <iframe> element. -- -- Example: -- --
--   iframe $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <iframe><span>foo</span></iframe>
--   
iframe :: Html ev -> Html ev -- | Combinator for the <img /> element. -- -- Example: -- --
--   img
--   
-- -- Result: -- --
--   <img />
--   
img :: Html ev -- | Combinator for the <input /> element. -- -- Example: -- --
--   input
--   
-- -- Result: -- --
--   <input />
--   
input :: Html ev -- | Combinator for the <ins> element. -- -- Example: -- --
--   ins $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <ins><span>foo</span></ins>
--   
ins :: Html ev -> Html ev -- | Combinator for the <kbd> element. -- -- Example: -- --
--   kbd $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <kbd><span>foo</span></kbd>
--   
kbd :: Html ev -> Html ev -- | Combinator for the <keygen /> element. -- -- Example: -- --
--   keygen
--   
-- -- Result: -- --
--   <keygen />
--   
keygen :: Html ev -- | Combinator for the <label> element. -- -- Example: -- --
--   label $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <label><span>foo</span></label>
--   
label :: Html ev -> Html ev -- | Combinator for the <legend> element. -- -- Example: -- --
--   legend $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <legend><span>foo</span></legend>
--   
legend :: Html ev -> Html ev -- | Combinator for the <li> element. -- -- Example: -- --
--   li $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <li><span>foo</span></li>
--   
li :: Html ev -> Html ev -- | Combinator for the <link /> element. -- -- Example: -- --
--   link
--   
-- -- Result: -- --
--   <link />
--   
link :: Html ev -- | Combinator for the <map> element. -- -- Example: -- --
--   map $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <map><span>foo</span></map>
--   
map :: Html ev -> Html ev -- | Combinator for the <mark> element. -- -- Example: -- --
--   mark $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <mark><span>foo</span></mark>
--   
mark :: Html ev -> Html ev -- | Combinator for the <menu> element. -- -- Example: -- --
--   menu $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <menu><span>foo</span></menu>
--   
menu :: Html ev -> Html ev -- | Combinator for the <menuitem /> element. -- -- Example: -- --
--   menuitem
--   
-- -- Result: -- --
--   <menuitem />
--   
menuitem :: Html ev -- | Combinator for the <meta /> element. -- -- Example: -- --
--   meta
--   
-- -- Result: -- --
--   <meta />
--   
meta :: Html ev -- | Combinator for the <meter> element. -- -- Example: -- --
--   meter $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <meter><span>foo</span></meter>
--   
meter :: Html ev -> Html ev -- | Combinator for the <nav> element. -- -- Example: -- --
--   nav $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <nav><span>foo</span></nav>
--   
nav :: Html ev -> Html ev -- | Combinator for the <noscript> element. -- -- Example: -- --
--   noscript $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <noscript><span>foo</span></noscript>
--   
noscript :: Html ev -> Html ev -- | Combinator for the <object> element. -- -- Example: -- --
--   object $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <object><span>foo</span></object>
--   
object :: Html ev -> Html ev -- | Combinator for the <ol> element. -- -- Example: -- --
--   ol $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <ol><span>foo</span></ol>
--   
ol :: Html ev -> Html ev -- | Combinator for the <optgroup> element. -- -- Example: -- --
--   optgroup $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <optgroup><span>foo</span></optgroup>
--   
optgroup :: Html ev -> Html ev -- | Combinator for the <option> element. -- -- Example: -- --
--   option $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <option><span>foo</span></option>
--   
option :: Html ev -> Html ev -- | Combinator for the <output> element. -- -- Example: -- --
--   output $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <output><span>foo</span></output>
--   
output :: Html ev -> Html ev -- | Combinator for the <p> element. -- -- Example: -- --
--   p $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <p><span>foo</span></p>
--   
p :: Html ev -> Html ev -- | Combinator for the <param /> element. -- -- Example: -- --
--   param
--   
-- -- Result: -- --
--   <param />
--   
param :: Html ev -- | Combinator for the <pre> element. -- -- Example: -- --
--   pre $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <pre><span>foo</span></pre>
--   
pre :: Html ev -> Html ev -- | Combinator for the <progress> element. -- -- Example: -- --
--   progress $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <progress><span>foo</span></progress>
--   
progress :: Html ev -> Html ev -- | Combinator for the <q> element. -- -- Example: -- --
--   q $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <q><span>foo</span></q>
--   
q :: Html ev -> Html ev -- | Combinator for the <rp> element. -- -- Example: -- --
--   rp $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <rp><span>foo</span></rp>
--   
rp :: Html ev -> Html ev -- | Combinator for the <rt> element. -- -- Example: -- --
--   rt $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <rt><span>foo</span></rt>
--   
rt :: Html ev -> Html ev -- | Combinator for the <ruby> element. -- -- Example: -- --
--   ruby $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <ruby><span>foo</span></ruby>
--   
ruby :: Html ev -> Html ev -- | Combinator for the <samp> element. -- -- Example: -- --
--   samp $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <samp><span>foo</span></samp>
--   
samp :: Html ev -> Html ev -- | Combinator for the <script> element. -- -- Example: -- --
--   script $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <script><span>foo</span></script>
--   
script :: Html ev -> Html ev -- | Combinator for the <section> element. -- -- Example: -- --
--   section $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <section><span>foo</span></section>
--   
section :: Html ev -> Html ev -- | Combinator for the <select> element. -- -- Example: -- --
--   select $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <select><span>foo</span></select>
--   
select :: Html ev -> Html ev -- | Combinator for the <small> element. -- -- Example: -- --
--   small $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <small><span>foo</span></small>
--   
small :: Html ev -> Html ev -- | Combinator for the <source /> element. -- -- Example: -- --
--   source
--   
-- -- Result: -- --
--   <source />
--   
source :: Html ev -- | Combinator for the <span> element. -- -- Example: -- --
--   span $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <span><span>foo</span></span>
--   
span :: Html ev -> Html ev -- | Combinator for the <strong> element. -- -- Example: -- --
--   strong $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <strong><span>foo</span></strong>
--   
strong :: Html ev -> Html ev -- | Combinator for the <style> element. -- -- Example: -- --
--   style $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <style><span>foo</span></style>
--   
style :: Html ev -> Html ev -- | Combinator for the <sub> element. -- -- Example: -- --
--   sub $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <sub><span>foo</span></sub>
--   
sub :: Html ev -> Html ev -- | Combinator for the <summary> element. -- -- Example: -- --
--   summary $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <summary><span>foo</span></summary>
--   
summary :: Html ev -> Html ev -- | Combinator for the <sup> element. -- -- Example: -- --
--   sup $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <sup><span>foo</span></sup>
--   
sup :: Html ev -> Html ev -- | Combinator for the <svg> element. -- -- Example: -- --
--   svg ! width "100" ! height "100" $
--     circle ! cx "50" ! cy "50" ! r "40"
--   
-- -- Result: -- --
--   <svg width="100" height="100"><circle cx="50" cy="50" r="40"/></svg>
--   
svg :: Svg ev -> Html ev -- | Combinator for the <table> element. -- -- Example: -- --
--   table $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <table><span>foo</span></table>
--   
table :: Html ev -> Html ev -- | Combinator for the <tbody> element. -- -- Example: -- --
--   tbody $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <tbody><span>foo</span></tbody>
--   
tbody :: Html ev -> Html ev -- | Combinator for the <td> element. -- -- Example: -- --
--   td $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <td><span>foo</span></td>
--   
td :: Html ev -> Html ev -- | Combinator for the <textarea> element. -- -- Example: -- --
--   textarea $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <textarea><span>foo</span></textarea>
--   
textarea :: Html ev -> Html ev -- | Combinator for the <tfoot> element. -- -- Example: -- --
--   tfoot $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <tfoot><span>foo</span></tfoot>
--   
tfoot :: Html ev -> Html ev -- | Combinator for the <th> element. -- -- Example: -- --
--   th $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <th><span>foo</span></th>
--   
th :: Html ev -> Html ev -- | Combinator for the <thead> element. -- -- Example: -- --
--   thead $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <thead><span>foo</span></thead>
--   
thead :: Html ev -> Html ev -- | Combinator for the <time> element. -- -- Example: -- --
--   time $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <time><span>foo</span></time>
--   
time :: Html ev -> Html ev -- | Combinator for the <title> element. -- -- Example: -- --
--   title $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <title><span>foo</span></title>
--   
title :: Html ev -> Html ev -- | Combinator for the <tr> element. -- -- Example: -- --
--   tr $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <tr><span>foo</span></tr>
--   
tr :: Html ev -> Html ev -- | Combinator for the <track /> element. -- -- Example: -- --
--   track
--   
-- -- Result: -- --
--   <track />
--   
track :: Html ev -- | Combinator for the <ul> element. -- -- Example: -- --
--   ul $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <ul><span>foo</span></ul>
--   
ul :: Html ev -> Html ev -- | Combinator for the <var> element. -- -- Example: -- --
--   var $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <var><span>foo</span></var>
--   
var :: Html ev -> Html ev -- | Combinator for the <video> element. -- -- Example: -- --
--   video $ span $ toHtml "foo"
--   
-- -- Result: -- --
--   <video><span>foo</span></video>
--   
video :: Html ev -> Html ev -- | Combinator for the <wbr /> element. -- -- Example: -- --
--   wbr
--   
-- -- Result: -- --
--   <wbr />
--   
wbr :: Html ev -- | This module exports combinators that provide you with the ability to -- set attributes on SVG elements. module Text.Blaze.Front.Svg.Attributes cx :: AttributeValue -> Attribute ev cy :: AttributeValue -> Attribute ev d :: AttributeValue -> Attribute ev dx :: AttributeValue -> Attribute ev dy :: AttributeValue -> Attribute ev fill :: AttributeValue -> Attribute ev fillOpacity :: AttributeValue -> Attribute ev fontFamily :: AttributeValue -> Attribute ev fontSize :: AttributeValue -> Attribute ev fx :: AttributeValue -> Attribute ev fy :: AttributeValue -> Attribute ev gradientTransform :: AttributeValue -> Attribute ev gradientUnits :: AttributeValue -> Attribute ev markerEnd :: AttributeValue -> Attribute ev markerMid :: AttributeValue -> Attribute ev markerStart :: AttributeValue -> Attribute ev offset :: AttributeValue -> Attribute ev opacity :: AttributeValue -> Attribute ev patternContentUnits :: AttributeValue -> Attribute ev patternUnits :: AttributeValue -> Attribute ev points :: AttributeValue -> Attribute ev preserveAspectRatio :: AttributeValue -> Attribute ev r :: AttributeValue -> Attribute ev rx :: AttributeValue -> Attribute ev ry :: AttributeValue -> Attribute ev spreadMethod :: AttributeValue -> Attribute ev stopColor :: AttributeValue -> Attribute ev stopOpacity :: AttributeValue -> Attribute ev stroke :: AttributeValue -> Attribute ev strokeDasharray :: AttributeValue -> Attribute ev strokeLinecap :: AttributeValue -> Attribute ev strokeOpacity :: AttributeValue -> Attribute ev strokeWidth :: AttributeValue -> Attribute ev textAnchor :: AttributeValue -> Attribute ev transform :: AttributeValue -> Attribute ev version :: AttributeValue -> Attribute ev viewBox :: AttributeValue -> Attribute ev x1 :: AttributeValue -> Attribute ev x2 :: AttributeValue -> Attribute ev x :: AttributeValue -> Attribute ev y1 :: AttributeValue -> Attribute ev y2 :: AttributeValue -> Attribute ev y :: AttributeValue -> Attribute ev module Web.Front -- | Generate message that will be pushed to client(s) based on underlying -- communication. createTask :: Show a => Text -> (t -> Markup a) -> t -> ClientTask a emptyTask :: ClientTask a module Web.Front.Broadcast -- | The common way how to use websocket Connection obtained from -- Handler via Conduit. interact starts two -- concurrent processes. First one is responsible for reading data from -- stream, decoding JSON message, executing custom business logic -- implemented by user and pushing the produced outgoing message -- to TChan. The second process is constantly reading from -- TChan, encoding the given message and pushing it to all -- subscribers. interact :: (Data message, Data message2) => (Value -> cache model -> ClientId -> IO (Out (Action message))) -> Connection -> TChan (Out (Action message)) -> TChan (Out message2) -> cache model -> ClientId -> IO ()