{-# 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 "circle" "<circle" ">"

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 "defs" "<defs" "</defs>"

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

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 "g" "<g" "</g>"

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

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 "linearGradient" "<linearGradient" "</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 "mask" "<mask" "</mask>"

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

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 "pattern" "<pattern" "</pattern>"

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

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

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 "radialGradient" "<radialGradient" "</radialGradient>"

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

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

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 "text" "<text" "</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 "tspan" "<tspan" "</tspan>"