{-# LANGUAGE OverloadedStrings #-} {- | Html5 formatting. The API is similar to < https://hackage.haskell.org/package/blaze-html >. -} module Data.Fmt.Attr ( -- * Html Html, Attr, toHtml, comment, Element (..), (!?), -- * Attributes accept, acceptCharset, accesskey, action, alt, async, autocomplete, autofocus, autoplay, challenge, charset, checked, cite, class_, cols, colspan, content, contenteditable, contextmenu, controls, coords, data_, datetime, defer, dir, disabled, draggable, enctype, for, form, formaction, formenctype, formmethod, formnovalidate, formtarget, headers, height, hidden, high, href, hreflang, httpEquiv, icon, id, ismap, item, itemprop, itemscope, itemtype, keytype, label, lang, list, loop, low, manifest, max, maxlength, media, method, min, multiple, name, novalidate, onbeforeonload, onbeforeprint, onblur, oncanplay, oncanplaythrough, onchange, onclick, oncontextmenu, ondblclick, ondrag, ondragend, ondragenter, ondragleave, ondragover, ondragstart, ondrop, ondurationchange, onemptied, onended, onerror, onfocus, onformchange, onforminput, onhaschange, oninput, oninvalid, onkeydown, onkeyup, onload, onloadeddata, onloadedmetadata, onloadstart, onmessage, onmousedown, onmousemove, onmouseout, onmouseover, onmouseup, onmousewheel, ononline, onpagehide, onpageshow, onpause, onplay, onplaying, onprogress, onpropstate, onratechange, onreadystatechange, onredo, onresize, onscroll, onseeked, onseeking, onselect, onstalled, onstorage, onsubmit, onsuspend, ontimeupdate, onundo, onunload, onvolumechange, onwaiting, open, optimum, pattern, ping, placeholder, preload, pubdate, radiogroup, readonly, rel, required, reversed, role, rows, rowspan, sandbox, scope, scoped, seamless, selected, shape, size, sizes, span, spellcheck, src, srcdoc, start, step, style, subject, summary, tabindex, target, title, type_, usemap, value, width, wrap, xmlns, ) where import qualified Data.ByteString.Char8 as B import Data.Fmt import Prelude (Eq (..), Maybe (..), Monoid (..), ($), (||)) attr :: ToLogStr s => LogStr -> s -> Attr attr k v = Attr $ splitWith f g where f = B.break $ \c -> c == '/' || c == '>' g l r0 = case B.uncons r0 of Just ('/', r) -> toHtml l % fmt k % "=" % quotes (toHtml v) % fmt " /" % toHtml r Just ('>', r) -> toHtml l % " " % fmt k % "=" % quotes (toHtml v) % fmt ">" % toHtml r _ -> fmt mempty -- Attributes ------------------------- {- | Combinator for the @accept@ attribute. Example: > div ! accept "bar" $ "Hello." Result: >
Hello.
-} accept :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr accept = attr "accept" {-# INLINE accept #-} {- | Combinator for the @accept-charset@ attribute. Example: > div ! acceptCharset "bar" $ "Hello." Result: >
Hello.
-} acceptCharset :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr acceptCharset = attr "accept-charset" {-# INLINE acceptCharset #-} {- | Combinator for the @accesskey@ attribute. Example: > div ! accesskey "bar" $ "Hello." Result: >
Hello.
-} accesskey :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr accesskey = attr "accesskey" {-# INLINE accesskey #-} {- | Combinator for the @action@ attribute. Example: > div ! action "bar" $ "Hello." Result: >
Hello.
-} action :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr action = attr "action" {-# INLINE action #-} {- | Combinator for the @alt@ attribute. Example: > div ! alt "bar" $ "Hello." Result: >
Hello.
-} alt :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr alt = attr "alt" {-# INLINE alt #-} {- | Combinator for the @async@ attribute. Example: > div ! async "bar" $ "Hello." Result: >
Hello.
-} async :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr async = attr "async" {-# INLINE async #-} {- | Combinator for the @autocomplete@ attribute. Example: > div ! autocomplete "bar" $ "Hello." Result: >
Hello.
-} autocomplete :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr autocomplete = attr "autocomplete" {-# INLINE autocomplete #-} {- | Combinator for the @autofocus@ attribute. Example: > div ! autofocus "bar" $ "Hello." Result: >
Hello.
-} autofocus :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr autofocus = attr "autofocus" {-# INLINE autofocus #-} {- | Combinator for the @autoplay@ attribute. Example: > div ! autoplay "bar" $ "Hello." Result: >
Hello.
-} autoplay :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr autoplay = attr "autoplay" {-# INLINE autoplay #-} {- | Combinator for the @challenge@ attribute. Example: > div ! challenge "bar" $ "Hello." Result: >
Hello.
-} challenge :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr challenge = attr "challenge" {-# INLINE challenge #-} {- | Combinator for the @charset@ attribute. Example: > div ! charset "bar" $ "Hello." Result: >
Hello.
-} charset :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr charset = attr "charset" {-# INLINE charset #-} {- | Combinator for the @checked@ attribute. Example: > div ! checked "bar" $ "Hello." Result: >
Hello.
-} checked :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr checked = attr "checked" {-# INLINE checked #-} {- | Combinator for the @cite@ attribute. Example: > div ! cite "bar" $ "Hello." Result: >
Hello.
-} cite :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr cite = attr "cite" {-# INLINE cite #-} {- | Combinator for the @class@ attribute. Example: > div ! class_ "bar" $ "Hello." Result: >
Hello.
-} class_ :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr class_ = attr "class" {-# INLINE class_ #-} {- | Combinator for the @cols@ attribute. Example: > div ! cols "bar" $ "Hello." Result: >
Hello.
-} cols :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr cols = attr "cols" {-# INLINE cols #-} {- | Combinator for the @colspan@ attribute. Example: > div ! colspan "bar" $ "Hello." Result: >
Hello.
-} colspan :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr colspan = attr "colspan" {-# INLINE colspan #-} {- | Combinator for the @content@ attribute. Example: > div ! content "bar" $ "Hello." Result: >
Hello.
-} content :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr content = attr "content" {-# INLINE content #-} {- | Combinator for the @contenteditable@ attribute. Example: > div ! contenteditable "bar" $ "Hello." Result: >
Hello.
-} contenteditable :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr contenteditable = attr "contenteditable" {-# INLINE contenteditable #-} {- | Combinator for the @contextmenu@ attribute. Example: > div ! contextmenu "bar" $ "Hello." Result: >
Hello.
-} contextmenu :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr contextmenu = attr "contextmenu" {-# INLINE contextmenu #-} {- | Combinator for the @controls@ attribute. Example: > div ! controls "bar" $ "Hello." Result: >
Hello.
-} controls :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr controls = attr "controls" {-# INLINE controls #-} {- | Combinator for the @coords@ attribute. Example: > div ! coords "bar" $ "Hello." Result: >
Hello.
-} coords :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr coords = attr "coords" {-# INLINE coords #-} {- | Combinator for the @data@ attribute. Example: > div ! data_ "bar" $ "Hello." Result: >
Hello.
-} data_ :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr data_ = attr "data" {-# INLINE data_ #-} {- | Combinator for the @datetime@ attribute. Example: > div ! datetime "bar" $ "Hello." Result: >
Hello.
-} datetime :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr datetime = attr "datetime" {-# INLINE datetime #-} {- | Combinator for the @defer@ attribute. Example: > div ! defer "bar" $ "Hello." Result: >
Hello.
-} defer :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr defer = attr "defer" {-# INLINE defer #-} {- | Combinator for the @dir@ attribute. Example: > div ! dir "bar" $ "Hello." Result: >
Hello.
-} dir :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr dir = attr "dir" {-# INLINE dir #-} {- | Combinator for the @disabled@ attribute. Example: > div ! disabled "bar" $ "Hello." Result: >
Hello.
-} disabled :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr disabled = attr "disabled" {-# INLINE disabled #-} {- | Combinator for the @draggable@ attribute. Example: > div ! draggable "bar" $ "Hello." Result: >
Hello.
-} draggable :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr draggable = attr "draggable" {-# INLINE draggable #-} {- | Combinator for the @enctype@ attribute. Example: > div ! enctype "bar" $ "Hello." Result: >
Hello.
-} enctype :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr enctype = attr "enctype" {-# INLINE enctype #-} {- | Combinator for the @for@ attribute. Example: > div ! for "bar" $ "Hello." Result: >
Hello.
-} for :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr for = attr "for" {-# INLINE for #-} {- | Combinator for the @form@ attribute. Example: > div ! form "bar" $ "Hello." Result: >
Hello.
-} form :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr form = attr "form" {-# INLINE form #-} {- | Combinator for the @formaction@ attribute. Example: > div ! formaction "bar" $ "Hello." Result: >
Hello.
-} formaction :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr formaction = attr "formaction" {-# INLINE formaction #-} {- | Combinator for the @formenctype@ attribute. Example: > div ! formenctype "bar" $ "Hello." Result: >
Hello.
-} formenctype :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr formenctype = attr "formenctype" {-# INLINE formenctype #-} {- | Combinator for the @formmethod@ attribute. Example: > div ! formmethod "bar" $ "Hello." Result: >
Hello.
-} formmethod :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr formmethod = attr "formmethod" {-# INLINE formmethod #-} {- | Combinator for the @formnovalidate@ attribute. Example: > div ! formnovalidate "bar" $ "Hello." Result: >
Hello.
-} formnovalidate :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr formnovalidate = attr "formnovalidate" {-# INLINE formnovalidate #-} {- | Combinator for the @formtarget@ attribute. Example: > div ! formtarget "bar" $ "Hello." Result: >
Hello.
-} formtarget :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr formtarget = attr "formtarget" {-# INLINE formtarget #-} {- | Combinator for the @headers@ attribute. Example: > div ! headers "bar" $ "Hello." Result: >
Hello.
-} headers :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr headers = attr "headers" {-# INLINE headers #-} {- | Combinator for the @height@ attribute. Example: > div ! height "bar" $ "Hello." Result: >
Hello.
-} height :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr height = attr "height" {-# INLINE height #-} {- | Combinator for the @hidden@ attribute. Example: > div ! hidden "bar" $ "Hello." Result: > -} hidden :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr hidden = attr "hidden" {-# INLINE hidden #-} {- | Combinator for the @high@ attribute. Example: > div ! high "bar" $ "Hello." Result: >
Hello.
-} high :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr high = attr "high" {-# INLINE high #-} {- | Combinator for the @href@ attribute. Example: > div ! href "bar" $ "Hello." Result: >
Hello.
-} href :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr href = attr "href" {-# INLINE href #-} {- | Combinator for the @hreflang@ attribute. Example: > div ! hreflang "bar" $ "Hello." Result: >
Hello.
-} hreflang :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr hreflang = attr "hreflang" {-# INLINE hreflang #-} {- | Combinator for the @http-equiv@ attribute. Example: > div ! httpEquiv "bar" $ "Hello." Result: >
Hello.
-} httpEquiv :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr httpEquiv = attr "http-equiv" {-# INLINE httpEquiv #-} {- | Combinator for the @icon@ attribute. Example: > div ! icon "bar" $ "Hello." Result: >
Hello.
-} icon :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr icon = attr "icon" {-# INLINE icon #-} {- | Combinator for the @id@ attribute. Example: > div ! id "bar" $ "Hello." Result: >
Hello.
-} id :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr id = attr "id" {-# INLINE id #-} {- | Combinator for the @ismap@ attribute. Example: > div ! ismap "bar" $ "Hello." Result: >
Hello.
-} ismap :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr ismap = attr "ismap" {-# INLINE ismap #-} {- | Combinator for the @item@ attribute. Example: > div ! item "bar" $ "Hello." Result: >
Hello.
-} item :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr item = attr "item" {-# INLINE item #-} {- | Combinator for the @itemprop@ attribute. Example: > div ! itemprop "bar" $ "Hello." Result: >
Hello.
-} itemprop :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr itemprop = attr "itemprop" {-# INLINE itemprop #-} {- | Combinator for the @itemscope@ attribute. Example: > div ! itemscope "bar" $ "Hello." Result: >
Hello.
-} itemscope :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr itemscope = attr "itemscope" {-# INLINE itemscope #-} {- | Combinator for the @itemtype@ attribute. Example: > div ! itemtype "bar" $ "Hello." Result: >
Hello.
-} itemtype :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr itemtype = attr "itemtype" {-# INLINE itemtype #-} {- | Combinator for the @keytype@ attribute. Example: > div ! keytype "bar" $ "Hello." Result: >
Hello.
-} keytype :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr keytype = attr "keytype" {-# INLINE keytype #-} {- | Combinator for the @label@ attribute. Example: > div ! label "bar" $ "Hello." Result: >
Hello.
-} label :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr label = attr "label" {-# INLINE label #-} {- | Combinator for the @lang@ attribute. Example: > div ! lang "bar" $ "Hello." Result: >
Hello.
-} lang :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr lang = attr "lang" {-# INLINE lang #-} {- | Combinator for the @list@ attribute. Example: > div ! list "bar" $ "Hello." Result: >
Hello.
-} list :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr list = attr "list" {-# INLINE list #-} {- | Combinator for the @loop@ attribute. Example: > div ! loop "bar" $ "Hello." Result: >
Hello.
-} loop :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr loop = attr "loop" {-# INLINE loop #-} {- | Combinator for the @low@ attribute. Example: > div ! low "bar" $ "Hello." Result: >
Hello.
-} low :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr low = attr "low" {-# INLINE low #-} {- | Combinator for the @manifest@ attribute. Example: > div ! manifest "bar" $ "Hello." Result: >
Hello.
-} manifest :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr manifest = attr "manifest" {-# INLINE manifest #-} {- | Combinator for the @max@ attribute. Example: > div ! max "bar" $ "Hello." Result: >
Hello.
-} max :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr max = attr "max" {-# INLINE max #-} {- | Combinator for the @maxlength@ attribute. Example: > div ! maxlength "bar" $ "Hello." Result: >
Hello.
-} maxlength :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr maxlength = attr "maxlength" {-# INLINE maxlength #-} {- | Combinator for the @media@ attribute. Example: > div ! media "bar" $ "Hello." Result: >
Hello.
-} media :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr media = attr "media" {-# INLINE media #-} {- | Combinator for the @method@ attribute. Example: > div ! method "bar" $ "Hello." Result: >
Hello.
-} method :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr method = attr "method" {-# INLINE method #-} {- | Combinator for the @min@ attribute. Example: > div ! min "bar" $ "Hello." Result: >
Hello.
-} min :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr min = attr "min" {-# INLINE min #-} {- | Combinator for the @multiple@ attribute. Example: > div ! multiple "bar" $ "Hello." Result: >
Hello.
-} multiple :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr multiple = attr "multiple" {-# INLINE multiple #-} {- | Combinator for the @name@ attribute. Example: > div ! name "bar" $ "Hello." Result: >
Hello.
-} name :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr name = attr "name" {-# INLINE name #-} {- | Combinator for the @novalidate@ attribute. Example: > div ! novalidate "bar" $ "Hello." Result: >
Hello.
-} novalidate :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr novalidate = attr "novalidate" {-# INLINE novalidate #-} {- | Combinator for the @onbeforeonload@ attribute. Example: > div ! onbeforeonload "bar" $ "Hello." Result: >
Hello.
-} onbeforeonload :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr onbeforeonload = attr "onbeforeonload" {-# INLINE onbeforeonload #-} {- | Combinator for the @onbeforeprint@ attribute. Example: > div ! onbeforeprint "bar" $ "Hello." Result: >
Hello.
-} onbeforeprint :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr onbeforeprint = attr "onbeforeprint" {-# INLINE onbeforeprint #-} {- | Combinator for the @onblur@ attribute. Example: > div ! onblur "bar" $ "Hello." Result: >
Hello.
-} onblur :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr onblur = attr "onblur" {-# INLINE onblur #-} {- | Combinator for the @oncanplay@ attribute. Example: > div ! oncanplay "bar" $ "Hello." Result: >
Hello.
-} oncanplay :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr oncanplay = attr "oncanplay" {-# INLINE oncanplay #-} {- | Combinator for the @oncanplaythrough@ attribute. Example: > div ! oncanplaythrough "bar" $ "Hello." Result: >
Hello.
-} oncanplaythrough :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr oncanplaythrough = attr "oncanplaythrough" {-# INLINE oncanplaythrough #-} {- | Combinator for the @onchange@ attribute. Example: > div ! onchange "bar" $ "Hello." Result: >
Hello.
-} onchange :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr onchange = attr "onchange" {-# INLINE onchange #-} {- | Combinator for the @onclick@ attribute. Example: > div ! onclick "bar" $ "Hello." Result: >
Hello.
-} onclick :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr onclick = attr "onclick" {-# INLINE onclick #-} {- | Combinator for the @oncontextmenu@ attribute. Example: > div ! oncontextmenu "bar" $ "Hello." Result: >
Hello.
-} oncontextmenu :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr oncontextmenu = attr "oncontextmenu" {-# INLINE oncontextmenu #-} {- | Combinator for the @ondblclick@ attribute. Example: > div ! ondblclick "bar" $ "Hello." Result: >
Hello.
-} ondblclick :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr ondblclick = attr "ondblclick" {-# INLINE ondblclick #-} {- | Combinator for the @ondrag@ attribute. Example: > div ! ondrag "bar" $ "Hello." Result: >
Hello.
-} ondrag :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr ondrag = attr "ondrag" {-# INLINE ondrag #-} {- | Combinator for the @ondragend@ attribute. Example: > div ! ondragend "bar" $ "Hello." Result: >
Hello.
-} ondragend :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr ondragend = attr "ondragend" {-# INLINE ondragend #-} {- | Combinator for the @ondragenter@ attribute. Example: > div ! ondragenter "bar" $ "Hello." Result: >
Hello.
-} ondragenter :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr ondragenter = attr "ondragenter" {-# INLINE ondragenter #-} {- | Combinator for the @ondragleave@ attribute. Example: > div ! ondragleave "bar" $ "Hello." Result: >
Hello.
-} ondragleave :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr ondragleave = attr "ondragleave" {-# INLINE ondragleave #-} {- | Combinator for the @ondragover@ attribute. Example: > div ! ondragover "bar" $ "Hello." Result: >
Hello.
-} ondragover :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr ondragover = attr "ondragover" {-# INLINE ondragover #-} {- | Combinator for the @ondragstart@ attribute. Example: > div ! ondragstart "bar" $ "Hello." Result: >
Hello.
-} ondragstart :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr ondragstart = attr "ondragstart" {-# INLINE ondragstart #-} {- | Combinator for the @ondrop@ attribute. Example: > div ! ondrop "bar" $ "Hello." Result: >
Hello.
-} ondrop :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr ondrop = attr "ondrop" {-# INLINE ondrop #-} {- | Combinator for the @ondurationchange@ attribute. Example: > div ! ondurationchange "bar" $ "Hello." Result: >
Hello.
-} ondurationchange :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr ondurationchange = attr "ondurationchange" {-# INLINE ondurationchange #-} {- | Combinator for the @onemptied@ attribute. Example: > div ! onemptied "bar" $ "Hello." Result: >
Hello.
-} onemptied :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr onemptied = attr "onemptied" {-# INLINE onemptied #-} {- | Combinator for the @onended@ attribute. Example: > div ! onended "bar" $ "Hello." Result: >
Hello.
-} onended :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr onended = attr "onended" {-# INLINE onended #-} {- | Combinator for the @onerror@ attribute. Example: > div ! onerror "bar" $ "Hello." Result: >
Hello.
-} onerror :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr onerror = attr "onerror" {-# INLINE onerror #-} {- | Combinator for the @onfocus@ attribute. Example: > div ! onfocus "bar" $ "Hello." Result: >
Hello.
-} onfocus :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr onfocus = attr "onfocus" {-# INLINE onfocus #-} {- | Combinator for the @onformchange@ attribute. Example: > div ! onformchange "bar" $ "Hello." Result: >
Hello.
-} onformchange :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr onformchange = attr "onformchange" {-# INLINE onformchange #-} {- | Combinator for the @onforminput@ attribute. Example: > div ! onforminput "bar" $ "Hello." Result: >
Hello.
-} onforminput :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr onforminput = attr "onforminput" {-# INLINE onforminput #-} {- | Combinator for the @onhaschange@ attribute. Example: > div ! onhaschange "bar" $ "Hello." Result: >
Hello.
-} onhaschange :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr onhaschange = attr "onhaschange" {-# INLINE onhaschange #-} {- | Combinator for the @oninput@ attribute. Example: > div ! oninput "bar" $ "Hello." Result: >
Hello.
-} oninput :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr oninput = attr "oninput" {-# INLINE oninput #-} {- | Combinator for the @oninvalid@ attribute. Example: > div ! oninvalid "bar" $ "Hello." Result: >
Hello.
-} oninvalid :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr oninvalid = attr "oninvalid" {-# INLINE oninvalid #-} {- | Combinator for the @onkeydown@ attribute. Example: > div ! onkeydown "bar" $ "Hello." Result: >
Hello.
-} onkeydown :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr onkeydown = attr "onkeydown" {-# INLINE onkeydown #-} {- | Combinator for the @onkeyup@ attribute. Example: > div ! onkeyup "bar" $ "Hello." Result: >
Hello.
-} onkeyup :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr onkeyup = attr "onkeyup" {-# INLINE onkeyup #-} {- | Combinator for the @onload@ attribute. Example: > div ! onload "bar" $ "Hello." Result: >
Hello.
-} onload :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr onload = attr "onload" {-# INLINE onload #-} {- | Combinator for the @onloadeddata@ attribute. Example: > div ! onloadeddata "bar" $ "Hello." Result: >
Hello.
-} onloadeddata :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr onloadeddata = attr "onloadeddata" {-# INLINE onloadeddata #-} {- | Combinator for the @onloadedmetadata@ attribute. Example: > div ! onloadedmetadata "bar" $ "Hello." Result: >
Hello.
-} onloadedmetadata :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr onloadedmetadata = attr "onloadedmetadata" {-# INLINE onloadedmetadata #-} {- | Combinator for the @onloadstart@ attribute. Example: > div ! onloadstart "bar" $ "Hello." Result: >
Hello.
-} onloadstart :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr onloadstart = attr "onloadstart" {-# INLINE onloadstart #-} {- | Combinator for the @onmessage@ attribute. Example: > div ! onmessage "bar" $ "Hello." Result: >
Hello.
-} onmessage :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr onmessage = attr "onmessage" {-# INLINE onmessage #-} {- | Combinator for the @onmousedown@ attribute. Example: > div ! onmousedown "bar" $ "Hello." Result: >
Hello.
-} onmousedown :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr onmousedown = attr "onmousedown" {-# INLINE onmousedown #-} {- | Combinator for the @onmousemove@ attribute. Example: > div ! onmousemove "bar" $ "Hello." Result: >
Hello.
-} onmousemove :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr onmousemove = attr "onmousemove" {-# INLINE onmousemove #-} {- | Combinator for the @onmouseout@ attribute. Example: > div ! onmouseout "bar" $ "Hello." Result: >
Hello.
-} onmouseout :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr onmouseout = attr "onmouseout" {-# INLINE onmouseout #-} {- | Combinator for the @onmouseover@ attribute. Example: > div ! onmouseover "bar" $ "Hello." Result: >
Hello.
-} onmouseover :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr onmouseover = attr "onmouseover" {-# INLINE onmouseover #-} {- | Combinator for the @onmouseup@ attribute. Example: > div ! onmouseup "bar" $ "Hello." Result: >
Hello.
-} onmouseup :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr onmouseup = attr "onmouseup" {-# INLINE onmouseup #-} {- | Combinator for the @onmousewheel@ attribute. Example: > div ! onmousewheel "bar" $ "Hello." Result: >
Hello.
-} onmousewheel :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr onmousewheel = attr "onmousewheel" {-# INLINE onmousewheel #-} {- | Combinator for the @ononline@ attribute. Example: > div ! ononline "bar" $ "Hello." Result: >
Hello.
-} ononline :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr ononline = attr "ononline" {-# INLINE ononline #-} {- | Combinator for the @onpagehide@ attribute. Example: > div ! onpagehide "bar" $ "Hello." Result: >
Hello.
-} onpagehide :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr onpagehide = attr "onpagehide" {-# INLINE onpagehide #-} {- | Combinator for the @onpageshow@ attribute. Example: > div ! onpageshow "bar" $ "Hello." Result: >
Hello.
-} onpageshow :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr onpageshow = attr "onpageshow" {-# INLINE onpageshow #-} {- | Combinator for the @onpause@ attribute. Example: > div ! onpause "bar" $ "Hello." Result: >
Hello.
-} onpause :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr onpause = attr "onpause" {-# INLINE onpause #-} {- | Combinator for the @onplay@ attribute. Example: > div ! onplay "bar" $ "Hello." Result: >
Hello.
-} onplay :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr onplay = attr "onplay" {-# INLINE onplay #-} {- | Combinator for the @onplaying@ attribute. Example: > div ! onplaying "bar" $ "Hello." Result: >
Hello.
-} onplaying :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr onplaying = attr "onplaying" {-# INLINE onplaying #-} {- | Combinator for the @onprogress@ attribute. Example: > div ! onprogress "bar" $ "Hello." Result: >
Hello.
-} onprogress :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr onprogress = attr "onprogress" {-# INLINE onprogress #-} {- | Combinator for the @onpropstate@ attribute. Example: > div ! onpropstate "bar" $ "Hello." Result: >
Hello.
-} onpropstate :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr onpropstate = attr "onpropstate" {-# INLINE onpropstate #-} {- | Combinator for the @onratechange@ attribute. Example: > div ! onratechange "bar" $ "Hello." Result: >
Hello.
-} onratechange :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr onratechange = attr "onratechange" {-# INLINE onratechange #-} {- | Combinator for the @onreadystatechange@ attribute. Example: > div ! onreadystatechange "bar" $ "Hello." Result: >
Hello.
-} onreadystatechange :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr onreadystatechange = attr "onreadystatechange" {-# INLINE onreadystatechange #-} {- | Combinator for the @onredo@ attribute. Example: > div ! onredo "bar" $ "Hello." Result: >
Hello.
-} onredo :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr onredo = attr "onredo" {-# INLINE onredo #-} {- | Combinator for the @onresize@ attribute. Example: > div ! onresize "bar" $ "Hello." Result: >
Hello.
-} onresize :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr onresize = attr "onresize" {-# INLINE onresize #-} {- | Combinator for the @onscroll@ attribute. Example: > div ! onscroll "bar" $ "Hello." Result: >
Hello.
-} onscroll :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr onscroll = attr "onscroll" {-# INLINE onscroll #-} {- | Combinator for the @onseeked@ attribute. Example: > div ! onseeked "bar" $ "Hello." Result: >
Hello.
-} onseeked :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr onseeked = attr "onseeked" {-# INLINE onseeked #-} {- | Combinator for the @onseeking@ attribute. Example: > div ! onseeking "bar" $ "Hello." Result: >
Hello.
-} onseeking :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr onseeking = attr "onseeking" {-# INLINE onseeking #-} {- | Combinator for the @onselect@ attribute. Example: > div ! onselect "bar" $ "Hello." Result: >
Hello.
-} onselect :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr onselect = attr "onselect" {-# INLINE onselect #-} {- | Combinator for the @onstalled@ attribute. Example: > div ! onstalled "bar" $ "Hello." Result: >
Hello.
-} onstalled :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr onstalled = attr "onstalled" {-# INLINE onstalled #-} {- | Combinator for the @onstorage@ attribute. Example: > div ! onstorage "bar" $ "Hello." Result: >
Hello.
-} onstorage :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr onstorage = attr "onstorage" {-# INLINE onstorage #-} {- | Combinator for the @onsubmit@ attribute. Example: > div ! onsubmit "bar" $ "Hello." Result: >
Hello.
-} onsubmit :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr onsubmit = attr "onsubmit" {-# INLINE onsubmit #-} {- | Combinator for the @onsuspend@ attribute. Example: > div ! onsuspend "bar" $ "Hello." Result: >
Hello.
-} onsuspend :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr onsuspend = attr "onsuspend" {-# INLINE onsuspend #-} {- | Combinator for the @ontimeupdate@ attribute. Example: > div ! ontimeupdate "bar" $ "Hello." Result: >
Hello.
-} ontimeupdate :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr ontimeupdate = attr "ontimeupdate" {-# INLINE ontimeupdate #-} {- | Combinator for the @onundo@ attribute. Example: > div ! onundo "bar" $ "Hello." Result: >
Hello.
-} onundo :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr onundo = attr "onundo" {-# INLINE onundo #-} {- | Combinator for the @onunload@ attribute. Example: > div ! onunload "bar" $ "Hello." Result: >
Hello.
-} onunload :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr onunload = attr "onunload" {-# INLINE onunload #-} {- | Combinator for the @onvolumechange@ attribute. Example: > div ! onvolumechange "bar" $ "Hello." Result: >
Hello.
-} onvolumechange :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr onvolumechange = attr "onvolumechange" {-# INLINE onvolumechange #-} {- | Combinator for the @onwaiting@ attribute. Example: > div ! onwaiting "bar" $ "Hello." Result: >
Hello.
-} onwaiting :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr onwaiting = attr "onwaiting" {-# INLINE onwaiting #-} {- | Combinator for the @open@ attribute. Example: > div ! open "bar" $ "Hello." Result: >
Hello.
-} open :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr open = attr "open" {-# INLINE open #-} {- | Combinator for the @optimum@ attribute. Example: > div ! optimum "bar" $ "Hello." Result: >
Hello.
-} optimum :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr optimum = attr "optimum" {-# INLINE optimum #-} {- | Combinator for the @pattern@ attribute. Example: > div ! pattern "bar" $ "Hello." Result: >
Hello.
-} pattern :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr pattern = attr "pattern" {-# INLINE pattern #-} {- | Combinator for the @ping@ attribute. Example: > div ! ping "bar" $ "Hello." Result: >
Hello.
-} ping :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr ping = attr "ping" {-# INLINE ping #-} {- | Combinator for the @placeholder@ attribute. Example: > div ! placeholder "bar" $ "Hello." Result: >
Hello.
-} placeholder :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr placeholder = attr "placeholder" {-# INLINE placeholder #-} {- | Combinator for the @preload@ attribute. Example: > div ! preload "bar" $ "Hello." Result: >
Hello.
-} preload :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr preload = attr "preload" {-# INLINE preload #-} {- | Combinator for the @pubdate@ attribute. Example: > div ! pubdate "bar" $ "Hello." Result: >
Hello.
-} pubdate :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr pubdate = attr "pubdate" {-# INLINE pubdate #-} {- | Combinator for the @radiogroup@ attribute. Example: > div ! radiogroup "bar" $ "Hello." Result: >
Hello.
-} radiogroup :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr radiogroup = attr "radiogroup" {-# INLINE radiogroup #-} {- | Combinator for the @readonly@ attribute. Example: > div ! readonly "bar" $ "Hello." Result: >
Hello.
-} readonly :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr readonly = attr "readonly" {-# INLINE readonly #-} {- | Combinator for the @rel@ attribute. Example: > div ! rel "bar" $ "Hello." Result: >
Hello.
-} rel :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr rel = attr "rel" {-# INLINE rel #-} {- | Combinator for the @required@ attribute. Example: > div ! required "bar" $ "Hello." Result: >
Hello.
-} required :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr required = attr "required" {-# INLINE required #-} {- | Combinator for the @reversed@ attribute. Example: > div ! reversed "bar" $ "Hello." Result: >
Hello.
-} reversed :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr reversed = attr "reversed" {-# INLINE reversed #-} {- | Combinator for the @role@ attribute. Example: > div ! role "bar" $ "Hello." Result: >
Hello.
-} role :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr role = attr "role" {-# INLINE role #-} {- | Combinator for the @rows@ attribute. Example: > div ! rows "bar" $ "Hello." Result: >
Hello.
-} rows :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr rows = attr "rows" {-# INLINE rows #-} {- | Combinator for the @rowspan@ attribute. Example: > div ! rowspan "bar" $ "Hello." Result: >
Hello.
-} rowspan :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr rowspan = attr "rowspan" {-# INLINE rowspan #-} {- | Combinator for the @sandbox@ attribute. Example: > div ! sandbox "bar" $ "Hello." Result: >
Hello.
-} sandbox :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr sandbox = attr "sandbox" {-# INLINE sandbox #-} {- | Combinator for the @scope@ attribute. Example: > div ! scope "bar" $ "Hello." Result: >
Hello.
-} scope :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr scope = attr "scope" {-# INLINE scope #-} {- | Combinator for the @scoped@ attribute. Example: > div ! scoped "bar" $ "Hello." Result: >
Hello.
-} scoped :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr scoped = attr "scoped" {-# INLINE scoped #-} {- | Combinator for the @seamless@ attribute. Example: > div ! seamless "bar" $ "Hello." Result: >
Hello.
-} seamless :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr seamless = attr "seamless" {-# INLINE seamless #-} {- | Combinator for the @selected@ attribute. Example: > div ! selected "bar" $ "Hello." Result: >
Hello.
-} selected :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr selected = attr "selected" {-# INLINE selected #-} {- | Combinator for the @shape@ attribute. Example: > div ! shape "bar" $ "Hello." Result: >
Hello.
-} shape :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr shape = attr "shape" {-# INLINE shape #-} {- | Combinator for the @size@ attribute. Example: > div ! size "bar" $ "Hello." Result: >
Hello.
-} size :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr size = attr "size" {-# INLINE size #-} {- | Combinator for the @sizes@ attribute. Example: > div ! sizes "bar" $ "Hello." Result: >
Hello.
-} sizes :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr sizes = attr "sizes" {-# INLINE sizes #-} {- | Combinator for the @span@ attribute. Example: > div ! span "bar" $ "Hello." Result: >
Hello.
-} span :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr span = attr "span" {-# INLINE span #-} {- | Combinator for the @spellcheck@ attribute. Example: > div ! spellcheck "bar" $ "Hello." Result: >
Hello.
-} spellcheck :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr spellcheck = attr "spellcheck" {-# INLINE spellcheck #-} {- | Combinator for the @src@ attribute. Example: > div ! src "bar" $ "Hello." Result: >
Hello.
-} src :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr src = attr "src" {-# INLINE src #-} {- | Combinator for the @srcdoc@ attribute. Example: > div ! srcdoc "bar" $ "Hello." Result: >
Hello.
-} srcdoc :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr srcdoc = attr "srcdoc" {-# INLINE srcdoc #-} {- | Combinator for the @start@ attribute. Example: > div ! start "bar" $ "Hello." Result: >
Hello.
-} start :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr start = attr "start" {-# INLINE start #-} {- | Combinator for the @step@ attribute. Example: > div ! step "bar" $ "Hello." Result: >
Hello.
-} step :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr step = attr "step" {-# INLINE step #-} {- | Combinator for the @style@ attribute. Example: > div ! style "bar" $ "Hello." Result: >
Hello.
-} style :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr style = attr "style" {-# INLINE style #-} {- | Combinator for the @subject@ attribute. Example: > div ! subject "bar" $ "Hello." Result: >
Hello.
-} subject :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr subject = attr "subject" {-# INLINE subject #-} {- | Combinator for the @summary@ attribute. Example: > div ! summary "bar" $ "Hello." Result: >
Hello.
-} summary :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr summary = attr "summary" {-# INLINE summary #-} {- | Combinator for the @tabindex@ attribute. Example: > div ! tabindex "bar" $ "Hello." Result: >
Hello.
-} tabindex :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr tabindex = attr "tabindex" {-# INLINE tabindex #-} {- | Combinator for the @target@ attribute. Example: > div ! target "bar" $ "Hello." Result: >
Hello.
-} target :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr target = attr "target" {-# INLINE target #-} {- | Combinator for the @title@ attribute. Example: > div ! title "bar" $ "Hello." Result: >
Hello.
-} title :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr title = attr "title" {-# INLINE title #-} {- | Combinator for the @type@ attribute. Example: > div ! type_ "bar" $ "Hello." Result: >
Hello.
-} type_ :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr type_ = attr "type" {-# INLINE type_ #-} {- | Combinator for the @usemap@ attribute. Example: > div ! usemap "bar" $ "Hello." Result: >
Hello.
-} usemap :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr usemap = attr "usemap" {-# INLINE usemap #-} {- | Combinator for the @value@ attribute. Example: > div ! value "bar" $ "Hello." Result: >
Hello.
-} value :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr value = attr "value" {-# INLINE value #-} {- | Combinator for the @width@ attribute. Example: > div ! width "bar" $ "Hello." Result: >
Hello.
-} width :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr width = attr "width" {-# INLINE width #-} {- | Combinator for the @wrap@ attribute. Example: > div ! wrap "bar" $ "Hello." Result: >
Hello.
-} wrap :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr wrap = attr "wrap" {-# INLINE wrap #-} {- | Combinator for the @xmlns@ attribute. Example: > div ! xmlns "bar" $ "Hello." Result: >
Hello.
-} xmlns :: ToLogStr s => -- | Attribute value. s -> -- | Resulting attribute. Attr xmlns = attr "xmlns" {-# INLINE xmlns #-}