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

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

module Graphics.Svg.Elements where

import Graphics.Svg.Core

-- | @DOCTYPE@ element
doctype :: Element
doctype :: Element
doctype = Text -> Element
makeElementDoctype Text
"?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 Attribute
svg11_:: Element -> Element
svg11_ :: Element -> Element
svg11_ = [Attribute] -> Element -> Element
forall result. Term result => [Attribute] -> result
svg_ [ Text -> Text -> Attribute
makeAttribute Text
"xmlns" Text
"http://www.w3.org/2000/svg"
              , Text -> Text -> Attribute
makeAttribute Text
"xmlns:xlink" Text
"http://www.w3.org/1999/xlink"
              , Text -> Text -> Attribute
makeAttribute Text
"version" Text
"1.1" ]

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

-- | @altglyph@ element
{-# DEPRECATED altGlyph_ "Removed from web standards." #-}
altGlyph_ :: Term result => [Attribute] -> result
altGlyph_ :: forall result. Term result => [Attribute] -> result
altGlyph_ = Text -> [Attribute] -> result
forall result. Term result => Text -> [Attribute] -> result
term Text
"altGlyph"

-- | @altglyphdef@ element
{-# DEPRECATED altGlyphDef_ "Removed from web standards." #-}
altGlyphDef_ :: Term result => [Attribute] -> result
altGlyphDef_ :: forall result. Term result => [Attribute] -> result
altGlyphDef_ = Text -> [Attribute] -> result
forall result. Term result => Text -> [Attribute] -> result
term Text
"altGlyphDef"

-- | @altglyphitem@ element
{-# DEPRECATED altGlyphItem_ "Removed from web standards." #-}
altGlyphItem_ :: Term result => [Attribute] -> result
altGlyphItem_ :: forall result. Term result => [Attribute] -> result
altGlyphItem_ = Text -> [Attribute] -> result
forall result. Term result => Text -> [Attribute] -> result
term Text
"altGlyphItem"

-- | @animate@ element
animate_ :: Term result => [Attribute] -> result
animate_ :: forall result. Term result => [Attribute] -> result
animate_ = Text -> [Attribute] -> result
forall result. Term result => Text -> [Attribute] -> result
term Text
"animate"

-- | @animatecolor@ element
{-# DEPRECATED animateColor_ "Removed from web standards." #-}
animateColor_ :: Term result => [Attribute] -> result
animateColor_ :: forall result. Term result => [Attribute] -> result
animateColor_ = Text -> [Attribute] -> result
forall result. Term result => Text -> [Attribute] -> result
term Text
"animateColor"

-- | @animatemotion@ element
animateMotion_ :: Term result => [Attribute] -> result
animateMotion_ :: forall result. Term result => [Attribute] -> result
animateMotion_ = Text -> [Attribute] -> result
forall result. Term result => Text -> [Attribute] -> result
term Text
"animateMotion"

-- | @animatetransform@ element
animateTransform_ :: Term result => [Attribute] -> result
animateTransform_ :: forall result. Term result => [Attribute] -> result
animateTransform_ = Text -> [Attribute] -> result
forall result. Term result => Text -> [Attribute] -> result
term Text
"animateTransform"

-- | @circle@ element
circle_ :: Term result => [Attribute] -> result
circle_ :: forall result. Term result => [Attribute] -> result
circle_ = Text -> [Attribute] -> result
forall result. Term result => Text -> [Attribute] -> result
term Text
"circle"

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

-- | @colorProfile@ element
colorProfile_ :: Term result => [Attribute] -> result
colorProfile_ :: forall result. Term result => [Attribute] -> result
colorProfile_ = Text -> [Attribute] -> result
forall result. Term result => Text -> [Attribute] -> result
term Text
"color-profile"

-- | @cursor@ element
cursor_ :: Term result => [Attribute] -> result
cursor_ :: forall result. Term result => [Attribute] -> result
cursor_ = Text -> [Attribute] -> result
forall result. Term result => Text -> [Attribute] -> result
term Text
"cursor"

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

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

-- | @ellipse@ element
ellipse_ :: Term result => [Attribute] -> result
ellipse_ :: forall result. Term result => [Attribute] -> result
ellipse_ = Text -> [Attribute] -> result
forall result. Term result => Text -> [Attribute] -> result
term Text
"ellipse"

-- | @feblend@ element
feBlend_ :: Term result => [Attribute] -> result
feBlend_ :: forall result. Term result => [Attribute] -> result
feBlend_ = Text -> [Attribute] -> result
forall result. Term result => Text -> [Attribute] -> result
term Text
"feBlend"

-- | @fecolormatrix@ element
feColorMatrix_ :: Term result => [Attribute] -> result
feColorMatrix_ :: forall result. Term result => [Attribute] -> result
feColorMatrix_ = Text -> [Attribute] -> result
forall result. Term result => Text -> [Attribute] -> result
term Text
"feColorMatrix"

-- | @fecomponenttransfer@ element
feComponentTransfer_ :: Term result => [Attribute] -> result
feComponentTransfer_ :: forall result. Term result => [Attribute] -> result
feComponentTransfer_ = Text -> [Attribute] -> result
forall result. Term result => Text -> [Attribute] -> result
term Text
"feComponentTransfer"

-- | @fecomposite@ element
feComposite_ :: Term result => [Attribute] -> result
feComposite_ :: forall result. Term result => [Attribute] -> result
feComposite_ = Text -> [Attribute] -> result
forall result. Term result => Text -> [Attribute] -> result
term Text
"feComposite"

-- | @feconvolvematrix@ element
feConvolveMatrix_ :: Term result => [Attribute] -> result
feConvolveMatrix_ :: forall result. Term result => [Attribute] -> result
feConvolveMatrix_ = Text -> [Attribute] -> result
forall result. Term result => Text -> [Attribute] -> result
term Text
"feConvolveMatrix"

-- | @fediffuselighting@ element
feDiffuseLighting_ :: Term result => [Attribute] -> result
feDiffuseLighting_ :: forall result. Term result => [Attribute] -> result
feDiffuseLighting_ = Text -> [Attribute] -> result
forall result. Term result => Text -> [Attribute] -> result
term Text
"feDiffuseLighting"

-- | @fedisplacementmap@ element
feDisplacementMap_ :: Term result => [Attribute] -> result
feDisplacementMap_ :: forall result. Term result => [Attribute] -> result
feDisplacementMap_ = Text -> [Attribute] -> result
forall result. Term result => Text -> [Attribute] -> result
term Text
"feDisplacementMap"

-- | @fedistantlight@ element
feDistantLight_ :: Term result => [Attribute] -> result
feDistantLight_ :: forall result. Term result => [Attribute] -> result
feDistantLight_ = Text -> [Attribute] -> result
forall result. Term result => Text -> [Attribute] -> result
term Text
"feDistantLight"

-- | @feflood@ element
feFlood_ :: Term result => [Attribute] -> result
feFlood_ :: forall result. Term result => [Attribute] -> result
feFlood_ = Text -> [Attribute] -> result
forall result. Term result => Text -> [Attribute] -> result
term Text
"feFlood"

-- | @fefunca@ element
feFuncA_ :: Term result => [Attribute] -> result
feFuncA_ :: forall result. Term result => [Attribute] -> result
feFuncA_ = Text -> [Attribute] -> result
forall result. Term result => Text -> [Attribute] -> result
term Text
"feFuncA"

-- | @fefuncb@ element
feFuncB_ :: Term result => [Attribute] -> result
feFuncB_ :: forall result. Term result => [Attribute] -> result
feFuncB_ = Text -> [Attribute] -> result
forall result. Term result => Text -> [Attribute] -> result
term Text
"feFuncB"

-- | @fefuncg@ element
feFuncG_ :: Term result => [Attribute] -> result
feFuncG_ :: forall result. Term result => [Attribute] -> result
feFuncG_ = Text -> [Attribute] -> result
forall result. Term result => Text -> [Attribute] -> result
term Text
"feFuncG"

-- | @fefuncr@ element
feFuncR_ :: Term result => [Attribute] -> result
feFuncR_ :: forall result. Term result => [Attribute] -> result
feFuncR_ = Text -> [Attribute] -> result
forall result. Term result => Text -> [Attribute] -> result
term Text
"feFuncR"

-- | @fegaussianblur@ element
feGaussianBlur_ :: Term result => [Attribute] -> result
feGaussianBlur_ :: forall result. Term result => [Attribute] -> result
feGaussianBlur_ = Text -> [Attribute] -> result
forall result. Term result => Text -> [Attribute] -> result
term Text
"feGaussianBlur"

-- | @feimage@ element
feImage_ :: Term result => [Attribute] -> result
feImage_ :: forall result. Term result => [Attribute] -> result
feImage_ = Text -> [Attribute] -> result
forall result. Term result => Text -> [Attribute] -> result
term Text
"feImage"

-- | @femerge@ element
feMerge_ :: Term result => [Attribute] -> result
feMerge_ :: forall result. Term result => [Attribute] -> result
feMerge_ = Text -> [Attribute] -> result
forall result. Term result => Text -> [Attribute] -> result
term Text
"feMerge"

-- | @femergenode@ element
feMergeNode_ :: Term result => [Attribute] -> result
feMergeNode_ :: forall result. Term result => [Attribute] -> result
feMergeNode_ = Text -> [Attribute] -> result
forall result. Term result => Text -> [Attribute] -> result
term Text
"feMergeNode"

-- | @femorphology@ element
feMorphology_ :: Term result => [Attribute] -> result
feMorphology_ :: forall result. Term result => [Attribute] -> result
feMorphology_ = Text -> [Attribute] -> result
forall result. Term result => Text -> [Attribute] -> result
term Text
"feMorphology"

-- | @feoffset@ element
feOffset_ :: Term result => [Attribute] -> result
feOffset_ :: forall result. Term result => [Attribute] -> result
feOffset_ = Text -> [Attribute] -> result
forall result. Term result => Text -> [Attribute] -> result
term Text
"feOffset"

-- | @fepointlight@ element
fePointLight_ :: Term result => [Attribute] -> result
fePointLight_ :: forall result. Term result => [Attribute] -> result
fePointLight_ = Text -> [Attribute] -> result
forall result. Term result => Text -> [Attribute] -> result
term Text
"fePointLight"

-- | @fespecularlighting@ element
feSpecularLighting_ :: Term result => [Attribute] -> result
feSpecularLighting_ :: forall result. Term result => [Attribute] -> result
feSpecularLighting_ = Text -> [Attribute] -> result
forall result. Term result => Text -> [Attribute] -> result
term Text
"feSpecularLighting"

-- | @fespotlight@ element
feSpotLight_ :: Term result => [Attribute] -> result
feSpotLight_ :: forall result. Term result => [Attribute] -> result
feSpotLight_ = Text -> [Attribute] -> result
forall result. Term result => Text -> [Attribute] -> result
term Text
"feSpotLight"

-- | @fetile@ element
feTile_ :: Term result => [Attribute] -> result
feTile_ :: forall result. Term result => [Attribute] -> result
feTile_ = Text -> [Attribute] -> result
forall result. Term result => Text -> [Attribute] -> result
term Text
"feTile"

-- | @feturbulence@ element
feTurbulence_ :: Term result => [Attribute] -> result
feTurbulence_ :: forall result. Term result => [Attribute] -> result
feTurbulence_ = Text -> [Attribute] -> result
forall result. Term result => Text -> [Attribute] -> result
term Text
"feTurbulence"

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

-- | @font@ element
font_ :: Term result => [Attribute] -> result
font_ :: forall result. Term result => [Attribute] -> result
font_ = Text -> [Attribute] -> result
forall result. Term result => Text -> [Attribute] -> result
term Text
"font"

-- | @fontFace@ element
fontFace_ :: Term result => [Attribute] -> result
fontFace_ :: forall result. Term result => [Attribute] -> result
fontFace_ = Text -> [Attribute] -> result
forall result. Term result => Text -> [Attribute] -> result
term Text
"font-face"

-- | @fontFaceFormat@ element
fontFaceFormat_ :: [Attribute] -> Element
fontFaceFormat_ :: [Attribute] -> Element
fontFaceFormat_ = Element -> [Attribute] -> Element
with (Element -> [Attribute] -> Element)
-> Element -> [Attribute] -> Element
forall a b. (a -> b) -> a -> b
$ Text -> Element
makeElementNoEnd Text
"font-face-format"

-- | @fontFaceName@ element
fontFaceName_ :: [Attribute] -> Element
fontFaceName_ :: [Attribute] -> Element
fontFaceName_ = Element -> [Attribute] -> Element
with (Element -> [Attribute] -> Element)
-> Element -> [Attribute] -> Element
forall a b. (a -> b) -> a -> b
$ Text -> Element
makeElementNoEnd Text
"font-face-name"

-- | @fontFaceSrc@ element
fontFaceSrc_ :: Term result => [Attribute] -> result
fontFaceSrc_ :: forall result. Term result => [Attribute] -> result
fontFaceSrc_ = Text -> [Attribute] -> result
forall result. Term result => Text -> [Attribute] -> result
term Text
"font-face-src"

-- | @fontFaceUri@ element
fontFaceUri_ :: Term result => [Attribute] -> result
fontFaceUri_ :: forall result. Term result => [Attribute] -> result
fontFaceUri_ = Text -> [Attribute] -> result
forall result. Term result => Text -> [Attribute] -> result
term Text
"font-face-uri"

-- | @foreignobject@ element
foreignObject_ :: Term result => [Attribute] -> result
foreignObject_ :: forall result. Term result => [Attribute] -> result
foreignObject_ = Text -> [Attribute] -> result
forall result. Term result => Text -> [Attribute] -> result
term Text
"foreignObject"

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

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

-- | @glyphref@ element
glyphRef_ :: [Attribute] -> Element
glyphRef_ :: [Attribute] -> Element
glyphRef_ = Element -> [Attribute] -> Element
with (Element -> [Attribute] -> Element)
-> Element -> [Attribute] -> Element
forall a b. (a -> b) -> a -> b
$ Text -> Element
makeElementNoEnd Text
"glyphRef"

-- | @hkern@ element
hkern_ :: [Attribute] -> Element
hkern_ :: [Attribute] -> Element
hkern_ = Element -> [Attribute] -> Element
with (Element -> [Attribute] -> Element)
-> Element -> [Attribute] -> Element
forall a b. (a -> b) -> a -> b
$ Text -> Element
makeElementNoEnd Text
"hkern"

-- | @image@ element
image_ :: Term result => [Attribute] -> result
image_ :: forall result. Term result => [Attribute] -> result
image_ = Text -> [Attribute] -> result
forall result. Term result => Text -> [Attribute] -> result
term Text
"image"

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

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

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

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

-- | @metadata@ element
metadata_ :: Term result => [Attribute] -> result
metadata_ :: forall result. Term result => [Attribute] -> result
metadata_ = Text -> [Attribute] -> result
forall result. Term result => Text -> [Attribute] -> result
term Text
"metadata"

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

-- | @mpath@ element
mpath_ :: Term result => [Attribute] -> result
mpath_ :: forall result. Term result => [Attribute] -> result
mpath_ = Text -> [Attribute] -> result
forall result. Term result => Text -> [Attribute] -> result
term Text
"mpath"

-- | @path@ element
path_ :: Term result => [Attribute] -> result
path_ :: forall result. Term result => [Attribute] -> result
path_ = Text -> [Attribute] -> result
forall result. Term result => Text -> [Attribute] -> result
term Text
"path"

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

-- | @polygon@ element
polygon_ :: Term result => [Attribute] -> result
polygon_ :: forall result. Term result => [Attribute] -> result
polygon_ = Text -> [Attribute] -> result
forall result. Term result => Text -> [Attribute] -> result
term Text
"polygon"

-- | @polyline@ element
polyline_ :: Term result => [Attribute] -> result
polyline_ :: forall result. Term result => [Attribute] -> result
polyline_ = Text -> [Attribute] -> result
forall result. Term result => Text -> [Attribute] -> result
term Text
"polyline"

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

-- | @rect@ element
rect_ :: Term result => [Attribute] -> result
rect_ :: forall result. Term result => [Attribute] -> result
rect_ = Text -> [Attribute] -> result
forall result. Term result => Text -> [Attribute] -> result
term Text
"rect"

-- | @script@ element
script_ :: Term result => [Attribute] -> result
script_ :: forall result. Term result => [Attribute] -> result
script_ = Text -> [Attribute] -> result
forall result. Term result => Text -> [Attribute] -> result
term Text
"script"

-- | @set@ element
set_ :: Term result => [Attribute] -> result
set_ :: forall result. Term result => [Attribute] -> result
set_ = Text -> [Attribute] -> result
forall result. Term result => Text -> [Attribute] -> result
term Text
"set"

-- | @stop@ element
stop_ :: Term result => [Attribute] -> result
stop_ :: forall result. Term result => [Attribute] -> result
stop_ = Text -> [Attribute] -> result
forall result. Term result => Text -> [Attribute] -> result
term Text
"stop"

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

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

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

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

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

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

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

-- | @tref@ element
tref_ :: Term result => [Attribute] -> result
tref_ :: forall result. Term result => [Attribute] -> result
tref_ = Text -> [Attribute] -> result
forall result. Term result => Text -> [Attribute] -> result
term Text
"tref"

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

-- | @use@ element
use_ :: Term result => [Attribute] -> result
use_ :: forall result. Term result => [Attribute] -> result
use_ = Text -> [Attribute] -> result
forall result. Term result => Text -> [Attribute] -> result
term Text
"use"

-- | @view@ element
view_ :: Term result => [Attribute] -> result
view_ :: forall result. Term result => [Attribute] -> result
view_ = Text -> [Attribute] -> result
forall result. Term result => Text -> [Attribute] -> result
term Text
"view"

-- | @vkern@ element
vkern_ :: [Attribute] -> Element
vkern_ :: [Attribute] -> Element
vkern_ = Element -> [Attribute] -> Element
with (Element -> [Attribute] -> Element)
-> Element -> [Attribute] -> Element
forall a b. (a -> b) -> a -> b
$ Text -> Element
makeElementNoEnd Text
"vkern"