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

-------------------------------------------------------------------------------
-- |
-- Module      :  Graphics.Svg.Elements
  Copyright    :   ( c ) 2015  
-- License     :  BSD-style (see LICENSE)
-- Maintainer  :  
--
-- SVG elements.
--
-------------------------------------------------------------------------------

module Graphics.Svg.Elements where

import Graphics.Svg.Core

-- | @DOCTYPE@ element
doctype :: Element
doctype = makeElementDoctype "?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n    \"\""

  | @svg@ element + svg 1.1 Attribute
svg11_:: Element -> Element
svg11_ = svg_ [ makeAttribute "xmlns" ""
              , makeAttribute "xmlns:xlink" ""
              , makeAttribute "version" "1.1" ]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

-- | @fontFaceFormat@ element
fontFaceFormat_ :: [Attribute] -> Element
fontFaceFormat_ = with $ makeElementNoEnd "font-face-format"

-- | @fontFaceName@ element
fontFaceName_ :: [Attribute] -> Element
fontFaceName_ = with $ makeElementNoEnd "font-face-name"

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

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

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

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

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

-- | @glyphref@ element
glyphRef_ :: [Attribute] -> Element
glyphRef_ = with $ makeElementNoEnd "glyphRef"

-- | @hkern@ element
hkern_ :: [Attribute] -> Element
hkern_ = with $ makeElementNoEnd "hkern"

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

-- | @vkern@ element
vkern_ :: [Attribute] -> Element
vkern_ = with $ makeElementNoEnd "vkern"

# LANGUAGE OverloadedStrings #
-----------------------------------------------------------------------------
 |
 Module      :  Graphics.Svg.Elements
 License     :  BSD-style (see LICENSE)
 Maintainer  :  

 SVG elements.

-----------------------------------------------------------------------------
 | @DOCTYPE@ element
 | @a@ element
 | @altglyph@ element
# DEPRECATED altGlyph_ "Removed from web standards." #
 | @altglyphdef@ element
# DEPRECATED altGlyphDef_ "Removed from web standards." #
 | @altglyphitem@ element
# DEPRECATED altGlyphItem_ "Removed from web standards." #
 | @animate@ element
 | @animatecolor@ element
# DEPRECATED animateColor_ "Removed from web standards." #
 | @animatemotion@ element
 | @circle@ element
 | @clipPath@ element or attribute
 | @colorProfile@ element
 | @cursor@ element
 | @defs@ element
 | @desc@ element
 | @ellipse@ element
 | @feblend@ element
 | @fecomponenttransfer@ element
 | @fecomposite@ element
 | @feconvolvematrix@ element
 | @fediffuselighting@ element
 | @fedisplacementmap@ element
 | @fedistantlight@ element
 | @feflood@ element
 | @fefunca@ element
 | @fefuncb@ element
 | @fefuncg@ element
 | @fefuncr@ element
 | @fegaussianblur@ element
 | @feimage@ element
 | @femerge@ element
 | @femergenode@ element
 | @femorphology@ element
 | @feoffset@ element
 | @fepointlight@ element
 | @fespecularlighting@ element
 | @fespotlight@ element
 | @fetile@ element
 | @feturbulence@ element
 | @filter_@ element
 | @font@ element
 | @fontFace@ element
 | @fontFaceFormat@ element
 | @fontFaceName@ element
 | @fontFaceUri@ element
 | @foreignobject@ element
 | @g@ element
 | @glyph@ element or attribute
 | @glyphref@ element
 | @hkern@ element
 | @image@ element
 | @line@ element
 | @lineargradient@ element
 | @marker@ element
 | @mask@ element or attribute
 | @metadata@ element
 | @missingGlyph@ element
 | @path@ element
 | @pattern@ element
 | @polygon@ element
 | @polyline@ element
 | @radialgradient@ element
 | @rect@ element
 | @script@ element
 | @set@ element
 | @stop@ element
 | @style@ element
 | @svg@ element
 | @switch@ element
 | @symbol@ element
 | @text_@ element
 | @textpath@ element
 | @title@ element
 | @tref@ element
 | @tspan@ element
 | @use@ element
 | @view@ element
 | @vkern@ element
# LANGUAGE FlexibleContexts   #

  Copyright    :   ( c ) 2015  

module Graphics.Svg.Elements where

import Graphics.Svg.Core

doctype :: Element
doctype = makeElementDoctype "?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n    \"\""

  | @svg@ element + svg 1.1 Attribute
svg11_:: Element -> Element
svg11_ = svg_ [ makeAttribute "xmlns" ""
              , makeAttribute "xmlns:xlink" ""
              , makeAttribute "version" "1.1" ]

a_ :: Term result => [Attribute] -> result
a_ = term "a"

altGlyph_ :: Term result => [Attribute] -> result
altGlyph_ = term "altGlyph"

altGlyphDef_ :: Term result => [Attribute] -> result
altGlyphDef_ = term "altGlyphDef"

altGlyphItem_ :: Term result => [Attribute] -> result
altGlyphItem_ = term "altGlyphItem"

animate_ :: Term result => [Attribute] -> result
animate_ = term "animate"

animateColor_ :: Term result => [Attribute] -> result
animateColor_ = term "animateColor"

animateMotion_ :: Term result => [Attribute] -> result
animateMotion_ = term "animateMotion"

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

circle_ :: Term result => [Attribute] -> result
circle_ = term "circle"

clipPath_ :: Term result => [Attribute] -> result
clipPath_ = term "clipPath"

colorProfile_ :: Term result => [Attribute] -> result
colorProfile_ = term "color-profile"

cursor_ :: Term result => [Attribute] -> result
cursor_ = term "cursor"

defs_ :: Term result => [Attribute] -> result
defs_ = term "defs"

desc_ :: Term result => [Attribute] -> result
desc_ = term "desc"

ellipse_ :: Term result => [Attribute] -> result
ellipse_ = term "ellipse"

feBlend_ :: Term result => [Attribute] -> result
feBlend_ = term "feBlend"

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

feComponentTransfer_ :: Term result => [Attribute] -> result
feComponentTransfer_ = term "feComponentTransfer"

feComposite_ :: Term result => [Attribute] -> result
feComposite_ = term "feComposite"

feConvolveMatrix_ :: Term result => [Attribute] -> result
feConvolveMatrix_ = term "feConvolveMatrix"

feDiffuseLighting_ :: Term result => [Attribute] -> result
feDiffuseLighting_ = term "feDiffuseLighting"

feDisplacementMap_ :: Term result => [Attribute] -> result
feDisplacementMap_ = term "feDisplacementMap"

feDistantLight_ :: Term result => [Attribute] -> result
feDistantLight_ = term "feDistantLight"

feFlood_ :: Term result => [Attribute] -> result
feFlood_ = term "feFlood"

feFuncA_ :: Term result => [Attribute] -> result
feFuncA_ = term "feFuncA"

feFuncB_ :: Term result => [Attribute] -> result
feFuncB_ = term "feFuncB"

feFuncG_ :: Term result => [Attribute] -> result
feFuncG_ = term "feFuncG"

feFuncR_ :: Term result => [Attribute] -> result
feFuncR_ = term "feFuncR"

feGaussianBlur_ :: Term result => [Attribute] -> result
feGaussianBlur_ = term "feGaussianBlur"

feImage_ :: Term result => [Attribute] -> result
feImage_ = term "feImage"

feMerge_ :: Term result => [Attribute] -> result
feMerge_ = term "feMerge"

feMergeNode_ :: Term result => [Attribute] -> result
feMergeNode_ = term "feMergeNode"

feMorphology_ :: Term result => [Attribute] -> result
feMorphology_ = term "feMorphology"

feOffset_ :: Term result => [Attribute] -> result
feOffset_ = term "feOffset"

fePointLight_ :: Term result => [Attribute] -> result
fePointLight_ = term "fePointLight"

feSpecularLighting_ :: Term result => [Attribute] -> result
feSpecularLighting_ = term "feSpecularLighting"

feSpotLight_ :: Term result => [Attribute] -> result
feSpotLight_ = term "feSpotLight"

feTile_ :: Term result => [Attribute] -> result
feTile_ = term "feTile"

feTurbulence_ :: Term result => [Attribute] -> result
feTurbulence_ = term "feTurbulence"

filter_ :: Term result => [Attribute] -> result
filter_ = term "filter"

font_ :: Term result => [Attribute] -> result
font_ = term "font"

fontFace_ :: Term result => [Attribute] -> result
fontFace_ = term "font-face"

fontFaceFormat_ :: [Attribute] -> Element
fontFaceFormat_ = with $ makeElementNoEnd "font-face-format"

fontFaceName_ :: [Attribute] -> Element
fontFaceName_ = with $ makeElementNoEnd "font-face-name"

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

fontFaceUri_ :: Term result => [Attribute] -> result
fontFaceUri_ = term "font-face-uri"

foreignObject_ :: Term result => [Attribute] -> result
foreignObject_ = term "foreignObject"

g_ :: Term result => [Attribute] -> result
g_ = term "g"

glyph_ :: Term result => [Attribute] -> result
glyph_ = term "glyph"

glyphRef_ :: [Attribute] -> Element
glyphRef_ = with $ makeElementNoEnd "glyphRef"

hkern_ :: [Attribute] -> Element
hkern_ = with $ makeElementNoEnd "hkern"

image_ :: Term result => [Attribute] -> result
image_ = term "image"

line_ :: Term result => [Attribute] -> result
line_ = term "line"

linearGradient_ :: Term result => [Attribute] -> result
linearGradient_ = term "linearGradient"

marker_ :: Term result => [Attribute] -> result
marker_ = term "marker"

mask_ :: Term result => [Attribute] -> result
mask_ = term "mask"

metadata_ :: Term result => [Attribute] -> result
metadata_ = term "metadata"

missingGlyph_ :: Term result => [Attribute] -> result
missingGlyph_ = term "missing-glyph"

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

path_ :: Term result => [Attribute] -> result
path_ = term "path"

pattern_ :: Term result => [Attribute] -> result
pattern_ = term "pattern"

polygon_ :: Term result => [Attribute] -> result
polygon_ = term "polygon"

polyline_ :: Term result => [Attribute] -> result
polyline_ = term "polyline"

radialGradient_ :: Term result => [Attribute] -> result
radialGradient_ = term "radialGradient"

rect_ :: Term result => [Attribute] -> result
rect_ = term "rect"

script_ :: Term result => [Attribute] -> result
script_ = term "script"

set_ :: Term result => [Attribute] -> result
set_ = term "set"

stop_ :: Term result => [Attribute] -> result
stop_ = term "stop"

style_ :: Term result => [Attribute] -> result
style_ = term "style"

svg_ :: Term result => [Attribute] -> result
svg_ = term "svg"

switch_ :: Term result => [Attribute] -> result
switch_ = term "switch"

symbol_ :: Term result => [Attribute] -> result
symbol_ = term "symbol"

text_ :: Term result => [Attribute] -> result
text_ = term "text"

textPath_ :: Term result => [Attribute] -> result
textPath_ = term "textPath"

title_ :: Term result => [Attribute] -> result
title_ = term "title"

tref_ :: Term result => [Attribute] -> result
tref_ = term "tref"

tspan_ :: Term result => [Attribute] -> result
tspan_ = term "tspan"

use_ :: Term result => [Attribute] -> result
use_ = term "use"

view_ :: Term result => [Attribute] -> result
view_ = term "view"

vkern_ :: [Attribute] -> Element
vkern_ = with $ makeElementNoEnd "vkern"
