{-# LANGUAGE OverloadedStrings #-}

-- | This module exports SVG combinators.
module Text.Blaze.Front.Svg
    ( module Text.Blaze.Front
    , Svg
    , toSvg
    , preEscapedToSvg

    , circle
    , defs
    , ellipse
    , g
    , line
    , linearGradient
    , mask
    , path
    , pattern
    , polygon
    , polyline
    , radialGradient
    , rect
    , stop
    , text
    , tspan
    ) where

import Text.Blaze.Front
import Text.Blaze.Front.Internal hiding (text)

type Svg ev = Markup ev

toSvg :: ToMarkup a => a -> Svg ev
toSvg :: a -> Svg ev
toSvg = a -> Svg ev
forall a ev. ToMarkup a => a -> Markup ev
toMarkup

preEscapedToSvg :: ToMarkup a => a -> Svg ev
preEscapedToSvg :: a -> Svg ev
preEscapedToSvg = a -> Svg ev
forall a ev. ToMarkup a => a -> Markup ev
preEscapedToMarkup

circle :: Svg ev
circle :: Svg ev
circle = StaticString -> StaticString -> StaticString -> Svg ev
forall act a.
StaticString -> StaticString -> StaticString -> MarkupM act a
Leaf StaticString
"circle" StaticString
"<circle" StaticString
">"

defs :: Svg ev -> Svg ev
defs :: Svg ev -> Svg ev
defs = StaticString -> StaticString -> StaticString -> Svg ev -> Svg ev
forall act a.
StaticString
-> StaticString -> StaticString -> MarkupM act a -> MarkupM act a
Parent StaticString
"defs" StaticString
"<defs" StaticString
"</defs>"

ellipse :: Svg ev
ellipse :: Svg ev
ellipse = StaticString -> StaticString -> StaticString -> Svg ev
forall act a.
StaticString -> StaticString -> StaticString -> MarkupM act a
Leaf StaticString
"ellipse" StaticString
"<ellipse" StaticString
">"

g :: Svg ev -> Svg ev
g :: Svg ev -> Svg ev
g = StaticString -> StaticString -> StaticString -> Svg ev -> Svg ev
forall act a.
StaticString
-> StaticString -> StaticString -> MarkupM act a -> MarkupM act a
Parent StaticString
"g" StaticString
"<g" StaticString
"</g>"

line :: Svg ev
line :: Svg ev
line = StaticString -> StaticString -> StaticString -> Svg ev
forall act a.
StaticString -> StaticString -> StaticString -> MarkupM act a
Leaf StaticString
"line" StaticString
"<line" StaticString
">"

linearGradient :: Svg ev -> Svg ev
linearGradient :: Svg ev -> Svg ev
linearGradient = StaticString -> StaticString -> StaticString -> Svg ev -> Svg ev
forall act a.
StaticString
-> StaticString -> StaticString -> MarkupM act a -> MarkupM act a
Parent StaticString
"linearGradient" StaticString
"<linearGradient" StaticString
"</linearGradient>"

mask :: Svg ev -> Svg ev
mask :: Svg ev -> Svg ev
mask = StaticString -> StaticString -> StaticString -> Svg ev -> Svg ev
forall act a.
StaticString
-> StaticString -> StaticString -> MarkupM act a -> MarkupM act a
Parent StaticString
"mask" StaticString
"<mask" StaticString
"</mask>"

path :: Svg ev
path :: Svg ev
path = StaticString -> StaticString -> StaticString -> Svg ev
forall act a.
StaticString -> StaticString -> StaticString -> MarkupM act a
Leaf StaticString
"path" StaticString
"<path" StaticString
">"

pattern :: Svg ev -> Svg ev
pattern :: Svg ev -> Svg ev
pattern = StaticString -> StaticString -> StaticString -> Svg ev -> Svg ev
forall act a.
StaticString
-> StaticString -> StaticString -> MarkupM act a -> MarkupM act a
Parent StaticString
"pattern" StaticString
"<pattern" StaticString
"</pattern>"

polygon :: Svg ev
polygon :: Svg ev
polygon = StaticString -> StaticString -> StaticString -> Svg ev
forall act a.
StaticString -> StaticString -> StaticString -> MarkupM act a
Leaf StaticString
"polygon" StaticString
"<polygon" StaticString
">"

polyline :: Svg ev
polyline :: Svg ev
polyline = StaticString -> StaticString -> StaticString -> Svg ev
forall act a.
StaticString -> StaticString -> StaticString -> MarkupM act a
Leaf StaticString
"polyline" StaticString
"<polyline" StaticString
">"

radialGradient :: Svg ev -> Svg ev
radialGradient :: Svg ev -> Svg ev
radialGradient = StaticString -> StaticString -> StaticString -> Svg ev -> Svg ev
forall act a.
StaticString
-> StaticString -> StaticString -> MarkupM act a -> MarkupM act a
Parent StaticString
"radialGradient" StaticString
"<radialGradient" StaticString
"</radialGradient>"

rect :: Svg ev
rect :: Svg ev
rect = StaticString -> StaticString -> StaticString -> Svg ev
forall act a.
StaticString -> StaticString -> StaticString -> MarkupM act a
Leaf StaticString
"rect" StaticString
"<rect" StaticString
">"

stop :: Svg ev
stop :: Svg ev
stop = StaticString -> StaticString -> StaticString -> Svg ev
forall act a.
StaticString -> StaticString -> StaticString -> MarkupM act a
Leaf StaticString
"stop" StaticString
"<stop" StaticString
">"

text :: Svg ev -> Svg ev
text :: Svg ev -> Svg ev
text = StaticString -> StaticString -> StaticString -> Svg ev -> Svg ev
forall act a.
StaticString
-> StaticString -> StaticString -> MarkupM act a -> MarkupM act a
Parent StaticString
"text" StaticString
"<text" StaticString
"</text>"

tspan :: Svg ev -> Svg ev
tspan :: Svg ev -> Svg ev
tspan = StaticString -> StaticString -> StaticString -> Svg ev -> Svg ev
forall act a.
StaticString
-> StaticString -> StaticString -> MarkupM act a -> MarkupM act a
Parent StaticString
"tspan" StaticString
"<tspan" StaticString
"</tspan>"