{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE FlexibleContexts  #-}

-------------------------------------------------------------------------------
-- |
-- Module      :  Lucid.Svg.Elements
-- Copyright   :  (c) 2015 Jeffrey Rosenbluth
-- License     :  BSD-style (see LICENSE)
-- Maintainer  :  jeffrey.rosenbluth@gmail.com
--
-- SVG elements.
--
-------------------------------------------------------------------------------

module Lucid.Svg.Elements where

import Lucid.Base

-- | A type alias for the 'SvgT m a' monad transformer.
type SvgT = HtmlT

-- | @DOCTYPE@ element
doctype_ :: Monad m => SvgT m ()
doctype_ :: SvgT m ()
doctype_ = Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeElementNoEnd "?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n    \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\""

-- | @svg@ element + svg 1.1 attributes
svg11_:: Term [Attribute] (s -> t) => s -> t
svg11_ :: s -> t
svg11_ m :: s
m = [Attribute] -> s -> t
forall arg result. Term arg result => arg -> result
svg_ [ Text -> Text -> Attribute
makeAttribute "xmlns" "http://www.w3.org/2000/svg"
                , Text -> Text -> Attribute
makeAttribute "xmlns:xlink" "http://www.w3.org/1999/xlink"
                , Text -> Text -> Attribute
makeAttribute "version" "1.1" ]
           s
m

-- | @a@ element
a_ :: Term arg result => arg -> result
a_ :: arg -> result
a_ = Text -> arg -> result
forall arg result. Term arg result => Text -> arg -> result
term "a"

-- | @altglyph@ element
altGlyph_ :: Monad m => [Attribute] -> SvgT m ()
altGlyph_ :: [Attribute] -> SvgT m ()
altGlyph_ = SvgT m () -> [Attribute] -> SvgT m ()
forall a. With a => a -> [Attribute] -> a
with (SvgT m () -> [Attribute] -> SvgT m ())
-> SvgT m () -> [Attribute] -> SvgT m ()
forall a b. (a -> b) -> a -> b
$ Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeXmlElementNoEnd "altGlyph"

-- | @altglyphdef@ element
altGlyphDef_ :: Monad m => [Attribute] -> SvgT m ()
altGlyphDef_ :: [Attribute] -> SvgT m ()
altGlyphDef_ = SvgT m () -> [Attribute] -> SvgT m ()
forall a. With a => a -> [Attribute] -> a
with (SvgT m () -> [Attribute] -> SvgT m ())
-> SvgT m () -> [Attribute] -> SvgT m ()
forall a b. (a -> b) -> a -> b
$ Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeXmlElementNoEnd "altGlyphDef"

-- | @altglyphitem@ element
altGlyphItem_ :: Monad m => [Attribute] -> SvgT m ()
altGlyphItem_ :: [Attribute] -> SvgT m ()
altGlyphItem_ = SvgT m () -> [Attribute] -> SvgT m ()
forall a. With a => a -> [Attribute] -> a
with (SvgT m () -> [Attribute] -> SvgT m ())
-> SvgT m () -> [Attribute] -> SvgT m ()
forall a b. (a -> b) -> a -> b
$ Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeXmlElementNoEnd "altGlyphItem"

-- | @animate@ element
animate_ :: Monad m => [Attribute] -> SvgT m ()
animate_ :: [Attribute] -> SvgT m ()
animate_ = SvgT m () -> [Attribute] -> SvgT m ()
forall a. With a => a -> [Attribute] -> a
with (SvgT m () -> [Attribute] -> SvgT m ())
-> SvgT m () -> [Attribute] -> SvgT m ()
forall a b. (a -> b) -> a -> b
$ Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeXmlElementNoEnd "animate"

-- | @animatecolor@ element
animateColor_ :: Monad m => [Attribute] -> SvgT m ()
animateColor_ :: [Attribute] -> SvgT m ()
animateColor_ = SvgT m () -> [Attribute] -> SvgT m ()
forall a. With a => a -> [Attribute] -> a
with (SvgT m () -> [Attribute] -> SvgT m ())
-> SvgT m () -> [Attribute] -> SvgT m ()
forall a b. (a -> b) -> a -> b
$ Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeXmlElementNoEnd "animateColor"

-- | @animatemotion@ element
animateMotion_ :: Monad m => [Attribute] -> SvgT m ()
animateMotion_ :: [Attribute] -> SvgT m ()
animateMotion_ = SvgT m () -> [Attribute] -> SvgT m ()
forall a. With a => a -> [Attribute] -> a
with (SvgT m () -> [Attribute] -> SvgT m ())
-> SvgT m () -> [Attribute] -> SvgT m ()
forall a b. (a -> b) -> a -> b
$ Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeXmlElementNoEnd "animateMotion"

-- | @animatetransform@ element
animateTransform_ :: Monad m => [Attribute] -> SvgT m ()
animateTransform_ :: [Attribute] -> SvgT m ()
animateTransform_ = SvgT m () -> [Attribute] -> SvgT m ()
forall a. With a => a -> [Attribute] -> a
with (SvgT m () -> [Attribute] -> SvgT m ())
-> SvgT m () -> [Attribute] -> SvgT m ()
forall a b. (a -> b) -> a -> b
$ Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeXmlElementNoEnd "animateTransform"

-- | @circle@ element
circle_ :: Monad m => [Attribute] -> SvgT m ()
circle_ :: [Attribute] -> SvgT m ()
circle_ = SvgT m () -> [Attribute] -> SvgT m ()
forall a. With a => a -> [Attribute] -> a
with (SvgT m () -> [Attribute] -> SvgT m ())
-> SvgT m () -> [Attribute] -> SvgT m ()
forall a b. (a -> b) -> a -> b
$ Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeXmlElementNoEnd "circle"

-- | @clipPath@ element or attribute
clipPath_ :: Term arg result => arg -> result
clipPath_ :: arg -> result
clipPath_ = Text -> arg -> result
forall arg result. Term arg result => Text -> arg -> result
term "clipPath"

-- | @colorProfile@ element
colorProfile_ :: Monad m => [Attribute] -> SvgT m ()
colorProfile_ :: [Attribute] -> SvgT m ()
colorProfile_ = SvgT m () -> [Attribute] -> SvgT m ()
forall a. With a => a -> [Attribute] -> a
with (SvgT m () -> [Attribute] -> SvgT m ())
-> SvgT m () -> [Attribute] -> SvgT m ()
forall a b. (a -> b) -> a -> b
$ Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeXmlElementNoEnd "color-profile"

-- | @cursor@ element
cursor_ :: Monad m => [Attribute] -> SvgT m ()
cursor_ :: [Attribute] -> SvgT m ()
cursor_ = SvgT m () -> [Attribute] -> SvgT m ()
forall a. With a => a -> [Attribute] -> a
with (SvgT m () -> [Attribute] -> SvgT m ())
-> SvgT m () -> [Attribute] -> SvgT m ()
forall a b. (a -> b) -> a -> b
$ Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeXmlElementNoEnd "cursor"

-- | @defs@ element
defs_ :: Term arg result => arg -> result
defs_ :: arg -> result
defs_ = Text -> arg -> result
forall arg result. Term arg result => Text -> arg -> result
term "defs"

-- | @desc@ element
desc_ :: Term arg result => arg -> result
desc_ :: arg -> result
desc_ = Text -> arg -> result
forall arg result. Term arg result => Text -> arg -> result
term "desc"

-- | @ellipse@ element
ellipse_ :: Monad m => [Attribute] -> SvgT m ()
ellipse_ :: [Attribute] -> SvgT m ()
ellipse_ = SvgT m () -> [Attribute] -> SvgT m ()
forall a. With a => a -> [Attribute] -> a
with (SvgT m () -> [Attribute] -> SvgT m ())
-> SvgT m () -> [Attribute] -> SvgT m ()
forall a b. (a -> b) -> a -> b
$ Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeXmlElementNoEnd "ellipse"

-- | @feblend@ element
feBlend_ :: Monad m => [Attribute] -> SvgT m ()
feBlend_ :: [Attribute] -> SvgT m ()
feBlend_ = SvgT m () -> [Attribute] -> SvgT m ()
forall a. With a => a -> [Attribute] -> a
with (SvgT m () -> [Attribute] -> SvgT m ())
-> SvgT m () -> [Attribute] -> SvgT m ()
forall a b. (a -> b) -> a -> b
$ Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeXmlElementNoEnd "feBlend"

-- | @fecolormatrix@ element
feColorMatrix_ :: Monad m => [Attribute] -> SvgT m ()
feColorMatrix_ :: [Attribute] -> SvgT m ()
feColorMatrix_ = SvgT m () -> [Attribute] -> SvgT m ()
forall a. With a => a -> [Attribute] -> a
with (SvgT m () -> [Attribute] -> SvgT m ())
-> SvgT m () -> [Attribute] -> SvgT m ()
forall a b. (a -> b) -> a -> b
$ Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeXmlElementNoEnd "feColorMatrix"

-- | @fecomponenttransfer@ element
feComponentTransfer_ :: Monad m => [Attribute] -> SvgT m ()
feComponentTransfer_ :: [Attribute] -> SvgT m ()
feComponentTransfer_ = SvgT m () -> [Attribute] -> SvgT m ()
forall a. With a => a -> [Attribute] -> a
with (SvgT m () -> [Attribute] -> SvgT m ())
-> SvgT m () -> [Attribute] -> SvgT m ()
forall a b. (a -> b) -> a -> b
$ Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeXmlElementNoEnd "feComponentTransfer"

-- | @fecomposite@ element
feComposite_ :: Monad m => [Attribute] -> SvgT m ()
feComposite_ :: [Attribute] -> SvgT m ()
feComposite_ = SvgT m () -> [Attribute] -> SvgT m ()
forall a. With a => a -> [Attribute] -> a
with (SvgT m () -> [Attribute] -> SvgT m ())
-> SvgT m () -> [Attribute] -> SvgT m ()
forall a b. (a -> b) -> a -> b
$ Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeXmlElementNoEnd "feComposite"

-- | @feconvolvematrix@ element
feConvolveMatrix_ :: Monad m => [Attribute] -> SvgT m ()
feConvolveMatrix_ :: [Attribute] -> SvgT m ()
feConvolveMatrix_ = SvgT m () -> [Attribute] -> SvgT m ()
forall a. With a => a -> [Attribute] -> a
with (SvgT m () -> [Attribute] -> SvgT m ())
-> SvgT m () -> [Attribute] -> SvgT m ()
forall a b. (a -> b) -> a -> b
$ Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeXmlElementNoEnd "feConvolveMatrix"

-- | @fediffuselighting@ element
feDiffuseLighting_ :: Monad m => [Attribute] -> SvgT m ()
feDiffuseLighting_ :: [Attribute] -> SvgT m ()
feDiffuseLighting_ = SvgT m () -> [Attribute] -> SvgT m ()
forall a. With a => a -> [Attribute] -> a
with (SvgT m () -> [Attribute] -> SvgT m ())
-> SvgT m () -> [Attribute] -> SvgT m ()
forall a b. (a -> b) -> a -> b
$ Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeXmlElementNoEnd "feDiffuseLighting"

-- | @fedisplacementmap@ element
feDisplacementMap_ :: Monad m => [Attribute] -> SvgT m ()
feDisplacementMap_ :: [Attribute] -> SvgT m ()
feDisplacementMap_ = SvgT m () -> [Attribute] -> SvgT m ()
forall a. With a => a -> [Attribute] -> a
with (SvgT m () -> [Attribute] -> SvgT m ())
-> SvgT m () -> [Attribute] -> SvgT m ()
forall a b. (a -> b) -> a -> b
$ Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeXmlElementNoEnd "feDisplacementMap"

-- | @fedistantlight@ element
feDistantLight_ :: Monad m => [Attribute] -> SvgT m ()
feDistantLight_ :: [Attribute] -> SvgT m ()
feDistantLight_ = SvgT m () -> [Attribute] -> SvgT m ()
forall a. With a => a -> [Attribute] -> a
with (SvgT m () -> [Attribute] -> SvgT m ())
-> SvgT m () -> [Attribute] -> SvgT m ()
forall a b. (a -> b) -> a -> b
$ Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeXmlElementNoEnd "feDistantLight"

-- | @feflood@ element
feFlood_ :: Monad m => [Attribute] -> SvgT m ()
feFlood_ :: [Attribute] -> SvgT m ()
feFlood_ = SvgT m () -> [Attribute] -> SvgT m ()
forall a. With a => a -> [Attribute] -> a
with (SvgT m () -> [Attribute] -> SvgT m ())
-> SvgT m () -> [Attribute] -> SvgT m ()
forall a b. (a -> b) -> a -> b
$ Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeXmlElementNoEnd "feFlood"

-- | @fefunca@ element
feFuncA_ :: Monad m => [Attribute] -> SvgT m ()
feFuncA_ :: [Attribute] -> SvgT m ()
feFuncA_ = SvgT m () -> [Attribute] -> SvgT m ()
forall a. With a => a -> [Attribute] -> a
with (SvgT m () -> [Attribute] -> SvgT m ())
-> SvgT m () -> [Attribute] -> SvgT m ()
forall a b. (a -> b) -> a -> b
$ Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeXmlElementNoEnd "feFuncA"

-- | @fefuncb@ element
feFuncB_ :: Monad m => [Attribute] -> SvgT m ()
feFuncB_ :: [Attribute] -> SvgT m ()
feFuncB_ = SvgT m () -> [Attribute] -> SvgT m ()
forall a. With a => a -> [Attribute] -> a
with (SvgT m () -> [Attribute] -> SvgT m ())
-> SvgT m () -> [Attribute] -> SvgT m ()
forall a b. (a -> b) -> a -> b
$ Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeXmlElementNoEnd "feFuncB"

-- | @fefuncg@ element
feFuncG_ :: Monad m => [Attribute] -> SvgT m ()
feFuncG_ :: [Attribute] -> SvgT m ()
feFuncG_ = SvgT m () -> [Attribute] -> SvgT m ()
forall a. With a => a -> [Attribute] -> a
with (SvgT m () -> [Attribute] -> SvgT m ())
-> SvgT m () -> [Attribute] -> SvgT m ()
forall a b. (a -> b) -> a -> b
$ Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeXmlElementNoEnd "feFuncG"

-- | @fefuncr@ element
feFuncR_ :: Monad m => [Attribute] -> SvgT m ()
feFuncR_ :: [Attribute] -> SvgT m ()
feFuncR_ = SvgT m () -> [Attribute] -> SvgT m ()
forall a. With a => a -> [Attribute] -> a
with (SvgT m () -> [Attribute] -> SvgT m ())
-> SvgT m () -> [Attribute] -> SvgT m ()
forall a b. (a -> b) -> a -> b
$ Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeXmlElementNoEnd "feFuncR"

-- | @fegaussianblur@ element
feGaussianBlur_ :: Monad m => [Attribute] -> SvgT m ()
feGaussianBlur_ :: [Attribute] -> SvgT m ()
feGaussianBlur_ = SvgT m () -> [Attribute] -> SvgT m ()
forall a. With a => a -> [Attribute] -> a
with (SvgT m () -> [Attribute] -> SvgT m ())
-> SvgT m () -> [Attribute] -> SvgT m ()
forall a b. (a -> b) -> a -> b
$ Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeXmlElementNoEnd "feGaussianBlur"

-- | @feimage@ element
feImage_ :: Monad m => [Attribute] -> SvgT m ()
feImage_ :: [Attribute] -> SvgT m ()
feImage_ = SvgT m () -> [Attribute] -> SvgT m ()
forall a. With a => a -> [Attribute] -> a
with (SvgT m () -> [Attribute] -> SvgT m ())
-> SvgT m () -> [Attribute] -> SvgT m ()
forall a b. (a -> b) -> a -> b
$ Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeXmlElementNoEnd "feImage"

-- | @femerge@ element
feMerge_ :: Monad m => [Attribute] -> SvgT m ()
feMerge_ :: [Attribute] -> SvgT m ()
feMerge_ = SvgT m () -> [Attribute] -> SvgT m ()
forall a. With a => a -> [Attribute] -> a
with (SvgT m () -> [Attribute] -> SvgT m ())
-> SvgT m () -> [Attribute] -> SvgT m ()
forall a b. (a -> b) -> a -> b
$ Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeXmlElementNoEnd "feMerge"

-- | @femergenode@ element
feMergeNode_ :: Monad m => [Attribute] -> SvgT m ()
feMergeNode_ :: [Attribute] -> SvgT m ()
feMergeNode_ = SvgT m () -> [Attribute] -> SvgT m ()
forall a. With a => a -> [Attribute] -> a
with (SvgT m () -> [Attribute] -> SvgT m ())
-> SvgT m () -> [Attribute] -> SvgT m ()
forall a b. (a -> b) -> a -> b
$ Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeXmlElementNoEnd "feMergeNode"

-- | @femorphology@ element
feMorphology_ :: Monad m => [Attribute] -> SvgT m ()
feMorphology_ :: [Attribute] -> SvgT m ()
feMorphology_ = SvgT m () -> [Attribute] -> SvgT m ()
forall a. With a => a -> [Attribute] -> a
with (SvgT m () -> [Attribute] -> SvgT m ())
-> SvgT m () -> [Attribute] -> SvgT m ()
forall a b. (a -> b) -> a -> b
$ Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeXmlElementNoEnd "feMorphology"

-- | @feoffset@ element
feOffset_ :: Monad m => [Attribute] -> SvgT m ()
feOffset_ :: [Attribute] -> SvgT m ()
feOffset_ = SvgT m () -> [Attribute] -> SvgT m ()
forall a. With a => a -> [Attribute] -> a
with (SvgT m () -> [Attribute] -> SvgT m ())
-> SvgT m () -> [Attribute] -> SvgT m ()
forall a b. (a -> b) -> a -> b
$ Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeXmlElementNoEnd "feOffset"

-- | @fepointlight@ element
fePointLight_ :: Monad m => [Attribute] -> SvgT m ()
fePointLight_ :: [Attribute] -> SvgT m ()
fePointLight_ = SvgT m () -> [Attribute] -> SvgT m ()
forall a. With a => a -> [Attribute] -> a
with (SvgT m () -> [Attribute] -> SvgT m ())
-> SvgT m () -> [Attribute] -> SvgT m ()
forall a b. (a -> b) -> a -> b
$ Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeXmlElementNoEnd "fePointLight"

-- | @fespecularlighting@ element
feSpecularLighting_ :: Monad m => [Attribute] -> SvgT m ()
feSpecularLighting_ :: [Attribute] -> SvgT m ()
feSpecularLighting_ = SvgT m () -> [Attribute] -> SvgT m ()
forall a. With a => a -> [Attribute] -> a
with (SvgT m () -> [Attribute] -> SvgT m ())
-> SvgT m () -> [Attribute] -> SvgT m ()
forall a b. (a -> b) -> a -> b
$ Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeXmlElementNoEnd "feSpecularLighting"

-- | @fespotlight@ element
feSpotLight_ :: Monad m => [Attribute] -> SvgT m ()
feSpotLight_ :: [Attribute] -> SvgT m ()
feSpotLight_ = SvgT m () -> [Attribute] -> SvgT m ()
forall a. With a => a -> [Attribute] -> a
with (SvgT m () -> [Attribute] -> SvgT m ())
-> SvgT m () -> [Attribute] -> SvgT m ()
forall a b. (a -> b) -> a -> b
$ Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeXmlElementNoEnd "feSpotLight"

-- | @fetile@ element
feTile_ :: Monad m => [Attribute] -> SvgT m ()
feTile_ :: [Attribute] -> SvgT m ()
feTile_ = SvgT m () -> [Attribute] -> SvgT m ()
forall a. With a => a -> [Attribute] -> a
with (SvgT m () -> [Attribute] -> SvgT m ())
-> SvgT m () -> [Attribute] -> SvgT m ()
forall a b. (a -> b) -> a -> b
$ Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeXmlElementNoEnd "feTile"

-- | @feturbulence@ element
feTurbulence_ :: Monad m => [Attribute] -> SvgT m ()
feTurbulence_ :: [Attribute] -> SvgT m ()
feTurbulence_ = SvgT m () -> [Attribute] -> SvgT m ()
forall a. With a => a -> [Attribute] -> a
with (SvgT m () -> [Attribute] -> SvgT m ())
-> SvgT m () -> [Attribute] -> SvgT m ()
forall a b. (a -> b) -> a -> b
$ Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeXmlElementNoEnd "feTurbulence"

-- | @filter_@ element
filter_ :: Term arg result => arg -> result
filter_ :: arg -> result
filter_ = Text -> arg -> result
forall arg result. Term arg result => Text -> arg -> result
term "filter"

-- | @font@ element
font_ :: Monad m => [Attribute] -> SvgT m ()
font_ :: [Attribute] -> SvgT m ()
font_ = SvgT m () -> [Attribute] -> SvgT m ()
forall a. With a => a -> [Attribute] -> a
with (SvgT m () -> [Attribute] -> SvgT m ())
-> SvgT m () -> [Attribute] -> SvgT m ()
forall a b. (a -> b) -> a -> b
$ Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeXmlElementNoEnd "font"

-- | @fontFace@ element
fontFace_ :: Monad m => [Attribute] -> SvgT m ()
fontFace_ :: [Attribute] -> SvgT m ()
fontFace_ = SvgT m () -> [Attribute] -> SvgT m ()
forall a. With a => a -> [Attribute] -> a
with (SvgT m () -> [Attribute] -> SvgT m ())
-> SvgT m () -> [Attribute] -> SvgT m ()
forall a b. (a -> b) -> a -> b
$ Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeXmlElementNoEnd "font-face"

-- | @fontFaceFormat@ element
fontFaceFormat_ :: Monad m => [Attribute] -> SvgT m ()
fontFaceFormat_ :: [Attribute] -> SvgT m ()
fontFaceFormat_ = SvgT m () -> [Attribute] -> SvgT m ()
forall a. With a => a -> [Attribute] -> a
with (SvgT m () -> [Attribute] -> SvgT m ())
-> SvgT m () -> [Attribute] -> SvgT m ()
forall a b. (a -> b) -> a -> b
$ Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeXmlElementNoEnd "font-face-format"

-- | @fontFaceName@ element
fontFaceName_ :: Monad m => [Attribute] -> SvgT m ()
fontFaceName_ :: [Attribute] -> SvgT m ()
fontFaceName_ = SvgT m () -> [Attribute] -> SvgT m ()
forall a. With a => a -> [Attribute] -> a
with (SvgT m () -> [Attribute] -> SvgT m ())
-> SvgT m () -> [Attribute] -> SvgT m ()
forall a b. (a -> b) -> a -> b
$ Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeXmlElementNoEnd "font-face-name"

-- | @fontFaceSrc@ element
fontFaceSrc_ :: Monad m => [Attribute] -> SvgT m ()
fontFaceSrc_ :: [Attribute] -> SvgT m ()
fontFaceSrc_ = SvgT m () -> [Attribute] -> SvgT m ()
forall a. With a => a -> [Attribute] -> a
with (SvgT m () -> [Attribute] -> SvgT m ())
-> SvgT m () -> [Attribute] -> SvgT m ()
forall a b. (a -> b) -> a -> b
$ Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeXmlElementNoEnd "font-face-src"

-- | @fontFaceUri@ element
fontFaceUri_ :: Monad m => [Attribute] -> SvgT m ()
fontFaceUri_ :: [Attribute] -> SvgT m ()
fontFaceUri_ = SvgT m () -> [Attribute] -> SvgT m ()
forall a. With a => a -> [Attribute] -> a
with (SvgT m () -> [Attribute] -> SvgT m ())
-> SvgT m () -> [Attribute] -> SvgT m ()
forall a b. (a -> b) -> a -> b
$ Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeXmlElementNoEnd "font-face-uri"

-- | @foreignobject@ element
foreignObject_ :: Monad m => [Attribute] -> SvgT m ()
foreignObject_ :: [Attribute] -> SvgT m ()
foreignObject_ = SvgT m () -> [Attribute] -> SvgT m ()
forall a. With a => a -> [Attribute] -> a
with (SvgT m () -> [Attribute] -> SvgT m ())
-> SvgT m () -> [Attribute] -> SvgT m ()
forall a b. (a -> b) -> a -> b
$ Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeXmlElementNoEnd "foreignObject"

-- | @g@ element
g_ :: Term arg result => arg -> result
g_ :: arg -> result
g_ = Text -> arg -> result
forall arg result. Term arg result => Text -> arg -> result
term "g"

-- | @glyph@ element or attribute
glyph_ :: Term arg result => arg -> result
glyph_ :: arg -> result
glyph_ = Text -> arg -> result
forall arg result. Term arg result => Text -> arg -> result
term "glyph"

-- | @glyphref@ element
glyphRef_ :: Monad m => [Attribute] -> SvgT m ()
glyphRef_ :: [Attribute] -> SvgT m ()
glyphRef_ = SvgT m () -> [Attribute] -> SvgT m ()
forall a. With a => a -> [Attribute] -> a
with (SvgT m () -> [Attribute] -> SvgT m ())
-> SvgT m () -> [Attribute] -> SvgT m ()
forall a b. (a -> b) -> a -> b
$ Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeXmlElementNoEnd "glyphRef"

-- | @hkern@ element
hkern_ :: Monad m => [Attribute] -> SvgT m ()
hkern_ :: [Attribute] -> SvgT m ()
hkern_ = SvgT m () -> [Attribute] -> SvgT m ()
forall a. With a => a -> [Attribute] -> a
with (SvgT m () -> [Attribute] -> SvgT m ())
-> SvgT m () -> [Attribute] -> SvgT m ()
forall a b. (a -> b) -> a -> b
$ Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeXmlElementNoEnd "hkern"

-- | @image@ element
image_ :: Monad m => [Attribute] -> SvgT m ()
image_ :: [Attribute] -> SvgT m ()
image_ = SvgT m () -> [Attribute] -> SvgT m ()
forall a. With a => a -> [Attribute] -> a
with (SvgT m () -> [Attribute] -> SvgT m ())
-> SvgT m () -> [Attribute] -> SvgT m ()
forall a b. (a -> b) -> a -> b
$ Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeXmlElementNoEnd "image"

-- | @line@ element
line_ :: Term arg result => arg -> result
line_ :: arg -> result
line_ = Text -> arg -> result
forall arg result. Term arg result => Text -> arg -> result
term "line"

-- | @lineargradient@ element
linearGradient_ :: Term arg result => arg -> result
linearGradient_ :: arg -> result
linearGradient_ = Text -> arg -> result
forall arg result. Term arg result => Text -> arg -> result
term "linearGradient"

-- | @marker@ element
marker_ :: Term arg result => arg -> result
marker_ :: arg -> result
marker_ = Text -> arg -> result
forall arg result. Term arg result => Text -> arg -> result
term "marker"

-- | @mask@ element or attribute
mask_ :: Term arg result => arg -> result
mask_ :: arg -> result
mask_ = Text -> arg -> result
forall arg result. Term arg result => Text -> arg -> result
term "mask"

-- | @metadata@ element
metadata_ :: Monad m => [Attribute] -> SvgT m ()
metadata_ :: [Attribute] -> SvgT m ()
metadata_ = SvgT m () -> [Attribute] -> SvgT m ()
forall a. With a => a -> [Attribute] -> a
with (SvgT m () -> [Attribute] -> SvgT m ())
-> SvgT m () -> [Attribute] -> SvgT m ()
forall a b. (a -> b) -> a -> b
$ Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeXmlElementNoEnd "metadata"

-- | @missingGlyph@ element
missingGlyph_ :: Term arg result => arg -> result
missingGlyph_ :: arg -> result
missingGlyph_ = Text -> arg -> result
forall arg result. Term arg result => Text -> arg -> result
term "missing-glyph"

-- | @mpath@ element
mpath_ :: Monad m => [Attribute] -> SvgT m ()
mpath_ :: [Attribute] -> SvgT m ()
mpath_ = SvgT m () -> [Attribute] -> SvgT m ()
forall a. With a => a -> [Attribute] -> a
with (SvgT m () -> [Attribute] -> SvgT m ())
-> SvgT m () -> [Attribute] -> SvgT m ()
forall a b. (a -> b) -> a -> b
$ Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeXmlElementNoEnd "mpath"

-- | @path@ element
path_ :: Monad m => [Attribute] -> SvgT m ()
path_ :: [Attribute] -> SvgT m ()
path_ = SvgT m () -> [Attribute] -> SvgT m ()
forall a. With a => a -> [Attribute] -> a
with (SvgT m () -> [Attribute] -> SvgT m ())
-> SvgT m () -> [Attribute] -> SvgT m ()
forall a b. (a -> b) -> a -> b
$ Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeXmlElementNoEnd "path"

-- | @pattern@ element
pattern_ :: Term arg result => arg -> result
pattern_ :: arg -> result
pattern_ = Text -> arg -> result
forall arg result. Term arg result => Text -> arg -> result
term "pattern"

-- | @polygon@ element
polygon_ :: Monad m => [Attribute] -> SvgT m ()
polygon_ :: [Attribute] -> SvgT m ()
polygon_ = SvgT m () -> [Attribute] -> SvgT m ()
forall a. With a => a -> [Attribute] -> a
with (SvgT m () -> [Attribute] -> SvgT m ())
-> SvgT m () -> [Attribute] -> SvgT m ()
forall a b. (a -> b) -> a -> b
$ Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeXmlElementNoEnd "polygon"

-- | @polyline@ element
polyline_ :: Monad m => [Attribute] -> SvgT m ()
polyline_ :: [Attribute] -> SvgT m ()
polyline_ = SvgT m () -> [Attribute] -> SvgT m ()
forall a. With a => a -> [Attribute] -> a
with (SvgT m () -> [Attribute] -> SvgT m ())
-> SvgT m () -> [Attribute] -> SvgT m ()
forall a b. (a -> b) -> a -> b
$ Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeXmlElementNoEnd "polyline"

-- | @radialgradient@ element
radialGradient_ :: Term arg result => arg -> result
radialGradient_ :: arg -> result
radialGradient_ = Text -> arg -> result
forall arg result. Term arg result => Text -> arg -> result
term "radialGradient"

-- | @rect@ element
rect_ :: Monad m => [Attribute] -> SvgT m ()
rect_ :: [Attribute] -> SvgT m ()
rect_ = SvgT m () -> [Attribute] -> SvgT m ()
forall a. With a => a -> [Attribute] -> a
with (SvgT m () -> [Attribute] -> SvgT m ())
-> SvgT m () -> [Attribute] -> SvgT m ()
forall a b. (a -> b) -> a -> b
$ Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeXmlElementNoEnd "rect"

-- | @script@ element
script_ :: Monad m => [Attribute] -> SvgT m ()
script_ :: [Attribute] -> SvgT m ()
script_ = SvgT m () -> [Attribute] -> SvgT m ()
forall a. With a => a -> [Attribute] -> a
with (SvgT m () -> [Attribute] -> SvgT m ())
-> SvgT m () -> [Attribute] -> SvgT m ()
forall a b. (a -> b) -> a -> b
$ Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeXmlElementNoEnd "script"

-- | @set@ element
set_ :: Monad m => [Attribute] -> SvgT m ()
set_ :: [Attribute] -> SvgT m ()
set_ = SvgT m () -> [Attribute] -> SvgT m ()
forall a. With a => a -> [Attribute] -> a
with (SvgT m () -> [Attribute] -> SvgT m ())
-> SvgT m () -> [Attribute] -> SvgT m ()
forall a b. (a -> b) -> a -> b
$ Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeXmlElementNoEnd "set"

-- | @stop@ element
stop_ :: Monad m => [Attribute] -> SvgT m ()
stop_ :: [Attribute] -> SvgT m ()
stop_ = SvgT m () -> [Attribute] -> SvgT m ()
forall a. With a => a -> [Attribute] -> a
with (SvgT m () -> [Attribute] -> SvgT m ())
-> SvgT m () -> [Attribute] -> SvgT m ()
forall a b. (a -> b) -> a -> b
$ Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeXmlElementNoEnd "stop"

-- | @style@ element
style_ :: Term arg result => arg -> result
style_ :: arg -> result
style_ = Text -> arg -> result
forall arg result. Term arg result => Text -> arg -> result
term "style"

-- | @svg@ element
svg_ :: Term arg result => arg -> result
svg_ :: arg -> result
svg_ = Text -> arg -> result
forall arg result. Term arg result => Text -> arg -> result
term "svg"

-- | @switch@ element
switch_ :: Term arg result => arg -> result
switch_ :: arg -> result
switch_ = Text -> arg -> result
forall arg result. Term arg result => Text -> arg -> result
term "switch"

-- | @symbol@ element
symbol_ :: Term arg result => arg -> result
symbol_ :: arg -> result
symbol_ = Text -> arg -> result
forall arg result. Term arg result => Text -> arg -> result
term "symbol"

-- | @text_@ element
text_ :: Term arg result => arg -> result
text_ :: arg -> result
text_ = Text -> arg -> result
forall arg result. Term arg result => Text -> arg -> result
term "text"

-- | @textpath@ element
textPath_ :: Term arg result => arg -> result
textPath_ :: arg -> result
textPath_ = Text -> arg -> result
forall arg result. Term arg result => Text -> arg -> result
term "textPath"

-- | @title@ element
title_ :: Term arg result => arg -> result
title_ :: arg -> result
title_ = Text -> arg -> result
forall arg result. Term arg result => Text -> arg -> result
term "title"

-- | @tref@ element
tref_ :: Monad m => [Attribute] -> SvgT m ()
tref_ :: [Attribute] -> SvgT m ()
tref_ = SvgT m () -> [Attribute] -> SvgT m ()
forall a. With a => a -> [Attribute] -> a
with (SvgT m () -> [Attribute] -> SvgT m ())
-> SvgT m () -> [Attribute] -> SvgT m ()
forall a b. (a -> b) -> a -> b
$ Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeXmlElementNoEnd "tref"

-- | @tspan@ element
tspan_ :: Term arg result => arg -> result
tspan_ :: arg -> result
tspan_ = Text -> arg -> result
forall arg result. Term arg result => Text -> arg -> result
term "tspan"

-- | @use@ element
use_ :: Monad m => [Attribute] -> SvgT m ()
use_ :: [Attribute] -> SvgT m ()
use_ = SvgT m () -> [Attribute] -> SvgT m ()
forall a. With a => a -> [Attribute] -> a
with (SvgT m () -> [Attribute] -> SvgT m ())
-> SvgT m () -> [Attribute] -> SvgT m ()
forall a b. (a -> b) -> a -> b
$ Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeXmlElementNoEnd "use"

-- | @view@ element
view_ :: Monad m => [Attribute] -> SvgT m ()
view_ :: [Attribute] -> SvgT m ()
view_ = SvgT m () -> [Attribute] -> SvgT m ()
forall a. With a => a -> [Attribute] -> a
with (SvgT m () -> [Attribute] -> SvgT m ())
-> SvgT m () -> [Attribute] -> SvgT m ()
forall a b. (a -> b) -> a -> b
$ Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeXmlElementNoEnd "view"

-- | @vkern@ element
vkern_ :: Monad m => [Attribute] -> SvgT m ()
vkern_ :: [Attribute] -> SvgT m ()
vkern_ = SvgT m () -> [Attribute] -> SvgT m ()
forall a. With a => a -> [Attribute] -> a
with (SvgT m () -> [Attribute] -> SvgT m ())
-> SvgT m () -> [Attribute] -> SvgT m ()
forall a b. (a -> b) -> a -> b
$ Text -> SvgT m ()
forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
makeXmlElementNoEnd "vkern"