-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/

-- | DSL for building SVG.
--   
--   Fast, easy to write SVG.
@package svg-builder
@version 0.1.1

-- | svg-builder Core types and functions.
module Graphics.Svg.Core

-- | Attribute name value.
data Attribute

-- | Type of an SVG element.
data Element

-- | Things that can be converted to SVG elements.
class ToElement a
toElement :: ToElement a => a -> Element

-- | Used to make specific SVG element builders.
class Term result

-- | Used for constructing elements e.g. term "circle" yields
--   circle_.
term :: Term result => Text -> [Attribute] -> result

-- | Make an attribute.
makeAttribute :: Text -> Text -> Attribute

-- | Make an SVG element builder
makeElement :: Text -> Element -> Element

-- | Make an SVG element with no end tag, contains only attributes.
makeElementNoEnd :: Text -> Element

-- | Make an SVG doctype element builder.
makeElementDoctype :: Text -> Element

-- | Add a list of attributes to an element
with :: Element -> [Attribute] -> Element

-- | Render a Element to lazy bytestring.
renderBS :: Element -> ByteString

-- | Render a Element to a file.
renderToFile :: FilePath -> Element -> IO ()

-- | Reder an Element to lazy text.
renderText :: Element -> Text
instance GHC.Classes.Eq Graphics.Svg.Core.Attribute
instance GHC.Show.Show Graphics.Svg.Core.Attribute
instance (e GHC.Types.~ Graphics.Svg.Core.Element) => Graphics.Svg.Core.Term (e -> Graphics.Svg.Core.Element)
instance Graphics.Svg.Core.Term Graphics.Svg.Core.Element
instance Data.String.IsString Graphics.Svg.Core.Element
instance Graphics.Svg.Core.ToElement GHC.Base.String
instance Graphics.Svg.Core.ToElement Data.Text.Internal.Text
instance Graphics.Svg.Core.ToElement Data.Text.Internal.Lazy.Text
instance GHC.Show.Show Graphics.Svg.Core.Element
instance GHC.Base.Semigroup Graphics.Svg.Core.Element
instance GHC.Base.Monoid Graphics.Svg.Core.Element
instance Data.Hashable.Class.Hashable Graphics.Svg.Core.Attribute

-- | SVG Attributes.
module Graphics.Svg.Attributes

-- | Infix version of bindAttr Each argument is set using
--   <<-, the bindAttr function or ->>.
--   
--   
--   [Width_ <<- "100%", Height_ <<- "100%", Fill_ <<- "red"]
--   
(<<-) :: AttrTag -> Text -> Attribute
infix 4 <<-

-- | Infix version of bindAttr with it's arguments reversed.
--   
--   
--   ["100%" ->> Width_, "100%" ->> Height_, "red" ->> Fill_]
--   
(->>) :: Text -> AttrTag -> Attribute
infix 4 ->>

-- | Make an Attribute from it's value constructor and it's text
--   value. by combining an AttrTag with it's value.
--   
--   
--   [bindAttr Width "100%, bindAttr Height "100%", bindAttr Fill "red"]
--   
bindAttr :: AttrTag -> Text -> Attribute
data AttrTag
Accent_height_ :: AttrTag
Accumulate_ :: AttrTag
Additive_ :: AttrTag
Alignment_baseline_ :: AttrTag
Alphabetic_ :: AttrTag
Amplitude_ :: AttrTag
Arabic_form_ :: AttrTag
Ascent_ :: AttrTag
AttributeName_ :: AttrTag
AttributeType_ :: AttrTag
Azimuth_ :: AttrTag
BaseFrequency_ :: AttrTag
Baseprofile_ :: AttrTag
Baseline_shift_ :: AttrTag
Bbox_ :: AttrTag
Begin_ :: AttrTag
Bias_ :: AttrTag
By_ :: AttrTag
CalcMode_ :: AttrTag
Cap_height_ :: AttrTag
Class_ :: AttrTag
Clip_ :: AttrTag
Clip_path_ :: AttrTag
Clip_rule_ :: AttrTag
ClipPathUnits_ :: AttrTag
Color_ :: AttrTag
Color_interpolation_ :: AttrTag
Color_interpolation_filters_ :: AttrTag
Color_profile_ :: AttrTag
Color_rendering_ :: AttrTag
ContentScriptType_ :: AttrTag
ContentStyleType_ :: AttrTag
Cursor_ :: AttrTag
Cx_ :: AttrTag
Cy_ :: AttrTag
D_ :: AttrTag
Descent_ :: AttrTag
DiffuseConstant_ :: AttrTag
Direction_ :: AttrTag
Display_ :: AttrTag
Divisor_ :: AttrTag
Dominant_baseline_ :: AttrTag
Dur_ :: AttrTag
Dx_ :: AttrTag
Dy_ :: AttrTag
EdgeMode_ :: AttrTag
Elevation_ :: AttrTag
Enable_background_ :: AttrTag
End_ :: AttrTag
Exponent_ :: AttrTag
ExternalResourcesRequired_ :: AttrTag
Fill_ :: AttrTag
Fill_opacity_ :: AttrTag
Fill_rule_ :: AttrTag
Filter_ :: AttrTag
FilterRes_ :: AttrTag
FilterUnits_ :: AttrTag
Flood_color_ :: AttrTag
Flood_opacity_ :: AttrTag
Font_family_ :: AttrTag
Font_size_ :: AttrTag
Font_size_adjust_ :: AttrTag
Font_stretch_ :: AttrTag
Font_style_ :: AttrTag
Font_variant_ :: AttrTag
Font_weight_ :: AttrTag
Format_ :: AttrTag
From_ :: AttrTag
Fx_ :: AttrTag
Fy_ :: AttrTag
G1_ :: AttrTag
G2_ :: AttrTag
Glyph_name_ :: AttrTag
Glyph_orientation_horizontal_ :: AttrTag
Glyph_orientation_vertical_ :: AttrTag
GradientTransform_ :: AttrTag
GradientUnits_ :: AttrTag
Hanging_ :: AttrTag
Height_ :: AttrTag
Horiz_adv_x_ :: AttrTag
Horiz_origin_x_ :: AttrTag
Horiz_origin_y_ :: AttrTag
Id_ :: AttrTag
Ideographic_ :: AttrTag
Image_rendering_ :: AttrTag
In_ :: AttrTag
In2_ :: AttrTag
Intercept_ :: AttrTag
K_ :: AttrTag
K1_ :: AttrTag
K2_ :: AttrTag
K3_ :: AttrTag
K4_ :: AttrTag
KernelMatrix_ :: AttrTag
KernelUnitLength_ :: AttrTag
Kerning_ :: AttrTag
KeyPoints_ :: AttrTag
KeySplines_ :: AttrTag
KeyTimes_ :: AttrTag
Lang_ :: AttrTag
LengthAdjust_ :: AttrTag
Letter_spacing_ :: AttrTag
Lighting_color_ :: AttrTag
LimitingConeAngle_ :: AttrTag
Local_ :: AttrTag
Marker_end_ :: AttrTag
Marker_mid_ :: AttrTag
Marker_start_ :: AttrTag
MarkerHeight_ :: AttrTag
MarkerUnits_ :: AttrTag
MarkerWidth_ :: AttrTag
MaskContentUnits_ :: AttrTag
MaskUnits_ :: AttrTag
Mathematical_ :: AttrTag
Max_ :: AttrTag
Media_ :: AttrTag
Method_ :: AttrTag
Min_ :: AttrTag
Mode_ :: AttrTag
Name_ :: AttrTag
NumOctaves_ :: AttrTag
Offset_ :: AttrTag
Onabort_ :: AttrTag
Onactivate_ :: AttrTag
Onbegin_ :: AttrTag
Onclick_ :: AttrTag
Onend_ :: AttrTag
Onerror_ :: AttrTag
Onfocusin_ :: AttrTag
Onfocusout_ :: AttrTag
Onload_ :: AttrTag
Onmousedown_ :: AttrTag
Onmousemove_ :: AttrTag
Onmouseout_ :: AttrTag
Onmouseover_ :: AttrTag
Onmouseup_ :: AttrTag
Onrepeat_ :: AttrTag
Onresize_ :: AttrTag
Onscroll_ :: AttrTag
Onunload_ :: AttrTag
Onzoom_ :: AttrTag
Opacity_ :: AttrTag
Operator_ :: AttrTag
Order_ :: AttrTag
Orient_ :: AttrTag
Orientation_ :: AttrTag
Origin_ :: AttrTag
Overflow_ :: AttrTag
Overline_position_ :: AttrTag
Overline_thickness_ :: AttrTag
Panose_1_ :: AttrTag
Paint_order_ :: AttrTag
Path_ :: AttrTag
PathLength_ :: AttrTag
PatternContentUnits_ :: AttrTag
PatternTransform_ :: AttrTag
PatternUnits_ :: AttrTag
Pointer_events_ :: AttrTag
Points_ :: AttrTag
PointsAtX_ :: AttrTag
PointsAtY_ :: AttrTag
PointsAtZ_ :: AttrTag
PreserveAlpha_ :: AttrTag
PreserveAspectRatio_ :: AttrTag
PrimitiveUnits_ :: AttrTag
R_ :: AttrTag
Radius_ :: AttrTag
RefX_ :: AttrTag
RefY_ :: AttrTag
Rendering_intent_ :: AttrTag
RepeatCount_ :: AttrTag
RepeatDur_ :: AttrTag
RequiredExtensions_ :: AttrTag
RequiredFeatures_ :: AttrTag
Restart_ :: AttrTag
Result_ :: AttrTag
Rotate_ :: AttrTag
Rx_ :: AttrTag
Ry_ :: AttrTag
Scale_ :: AttrTag
Seed_ :: AttrTag
Shape_rendering_ :: AttrTag
Slope_ :: AttrTag
Spacing_ :: AttrTag
SpecularConstant_ :: AttrTag
SpecularExponent_ :: AttrTag
SpreadMethod_ :: AttrTag
StartOffset_ :: AttrTag
StdDeviation_ :: AttrTag
Stemh_ :: AttrTag
Stemv_ :: AttrTag
StitchTiles_ :: AttrTag
Stop_color_ :: AttrTag
Stop_opacity_ :: AttrTag
Strikethrough_position_ :: AttrTag
Strikethrough_thickness_ :: AttrTag
String_ :: AttrTag
Stroke_ :: AttrTag
Stroke_dasharray_ :: AttrTag
Stroke_dashoffset_ :: AttrTag
Stroke_linecap_ :: AttrTag
Stroke_linejoin_ :: AttrTag
Stroke_miterlimit_ :: AttrTag
Stroke_opacity_ :: AttrTag
Stroke_width_ :: AttrTag
Style_ :: AttrTag
SurfaceScale_ :: AttrTag
SystemLanguage_ :: AttrTag
TableValues_ :: AttrTag
Target_ :: AttrTag
TargetX_ :: AttrTag
TargetY_ :: AttrTag
Text_anchor_ :: AttrTag
Text_decoration_ :: AttrTag
Text_rendering_ :: AttrTag
TextLength_ :: AttrTag
To_ :: AttrTag
Transform_ :: AttrTag
Type_ :: AttrTag
U1_ :: AttrTag
U2_ :: AttrTag
Underline_position_ :: AttrTag
Underline_thickness_ :: AttrTag
Unicode_ :: AttrTag
Unicode_bidi_ :: AttrTag
Unicode_range_ :: AttrTag
Units_per_em_ :: AttrTag
V_alphabetic_ :: AttrTag
V_hanging_ :: AttrTag
V_ideographic_ :: AttrTag
V_mathematical_ :: AttrTag
Values_ :: AttrTag
Version_ :: AttrTag
Vert_adv_y_ :: AttrTag
Vert_origin_x_ :: AttrTag
Vert_origin_y_ :: AttrTag
ViewBox_ :: AttrTag
ViewTarget_ :: AttrTag
Visibility_ :: AttrTag
Width_ :: AttrTag
Widths_ :: AttrTag
Word_spacing_ :: AttrTag
Writing_mode_ :: AttrTag
X_ :: AttrTag
X_height_ :: AttrTag
X1_ :: AttrTag
X2_ :: AttrTag
XChannelSelector_ :: AttrTag
XlinkActuate_ :: AttrTag
XlinkArcrole_ :: AttrTag
XlinkHref_ :: AttrTag
XlinkRole_ :: AttrTag
XlinkShow_ :: AttrTag
XlinkTitle_ :: AttrTag
XlinkType_ :: AttrTag
XmlBase_ :: AttrTag
XmlLang_ :: AttrTag
XmlSpace_ :: AttrTag
Y_ :: AttrTag
Y1_ :: AttrTag
Y2_ :: AttrTag
YChannelselector_ :: AttrTag
Z_ :: AttrTag
ZoomAndPan_ :: AttrTag

-- | SVG elements.
module Graphics.Svg.Elements

-- | DOCTYPE element
doctype :: Element

-- | svg element + svg 1.1 Attribute
svg11_ :: Element -> Element

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

-- | altglyph element

-- | Deprecated: Removed from web standards.
altGlyph_ :: Term result => [Attribute] -> result

-- | altglyphdef element

-- | Deprecated: Removed from web standards.
altGlyphDef_ :: Term result => [Attribute] -> result

-- | altglyphitem element

-- | Deprecated: Removed from web standards.
altGlyphItem_ :: Term result => [Attribute] -> result

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

-- | animatecolor element

-- | Deprecated: Removed from web standards.
animateColor_ :: Term result => [Attribute] -> result

-- | animatemotion element
animateMotion_ :: Term result => [Attribute] -> result

-- | animatetransform element
animateTransform_ :: Term result => [Attribute] -> result

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

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

-- | colorProfile element
colorProfile_ :: Term result => [Attribute] -> result

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

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

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

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

-- | feblend element
feBlend_ :: Term result => [Attribute] -> result

-- | fecolormatrix element
feColorMatrix_ :: Term result => [Attribute] -> result

-- | fecomponenttransfer element
feComponentTransfer_ :: Term result => [Attribute] -> result

-- | fecomposite element
feComposite_ :: Term result => [Attribute] -> result

-- | feconvolvematrix element
feConvolveMatrix_ :: Term result => [Attribute] -> result

-- | fediffuselighting element
feDiffuseLighting_ :: Term result => [Attribute] -> result

-- | fedisplacementmap element
feDisplacementMap_ :: Term result => [Attribute] -> result

-- | fedistantlight element
feDistantLight_ :: Term result => [Attribute] -> result

-- | feflood element
feFlood_ :: Term result => [Attribute] -> result

-- | fefunca element
feFuncA_ :: Term result => [Attribute] -> result

-- | fefuncb element
feFuncB_ :: Term result => [Attribute] -> result

-- | fefuncg element
feFuncG_ :: Term result => [Attribute] -> result

-- | fefuncr element
feFuncR_ :: Term result => [Attribute] -> result

-- | fegaussianblur element
feGaussianBlur_ :: Term result => [Attribute] -> result

-- | feimage element
feImage_ :: Term result => [Attribute] -> result

-- | femerge element
feMerge_ :: Term result => [Attribute] -> result

-- | femergenode element
feMergeNode_ :: Term result => [Attribute] -> result

-- | femorphology element
feMorphology_ :: Term result => [Attribute] -> result

-- | feoffset element
feOffset_ :: Term result => [Attribute] -> result

-- | fepointlight element
fePointLight_ :: Term result => [Attribute] -> result

-- | fespecularlighting element
feSpecularLighting_ :: Term result => [Attribute] -> result

-- | fespotlight element
feSpotLight_ :: Term result => [Attribute] -> result

-- | fetile element
feTile_ :: Term result => [Attribute] -> result

-- | feturbulence element
feTurbulence_ :: Term result => [Attribute] -> result

-- | filter_ element
filter_ :: Term result => [Attribute] -> result

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

-- | fontFace element
fontFace_ :: Term result => [Attribute] -> result

-- | fontFaceFormat element
fontFaceFormat_ :: [Attribute] -> Element

-- | fontFaceName element
fontFaceName_ :: [Attribute] -> Element

-- | fontFaceSrc element
fontFaceSrc_ :: Term result => [Attribute] -> result

-- | fontFaceUri element
fontFaceUri_ :: Term result => [Attribute] -> result

-- | foreignobject element
foreignObject_ :: Term result => [Attribute] -> result

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

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

-- | glyphref element
glyphRef_ :: [Attribute] -> Element

-- | hkern element
hkern_ :: [Attribute] -> Element

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

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

-- | lineargradient element
linearGradient_ :: Term result => [Attribute] -> result

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

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

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

-- | missingGlyph element
missingGlyph_ :: Term result => [Attribute] -> result

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

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

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

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

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

-- | radialgradient element
radialGradient_ :: Term result => [Attribute] -> result

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

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

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

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

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

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

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

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

-- | text_ element
text_ :: Term result => [Attribute] -> result

-- | textpath element
textPath_ :: Term result => [Attribute] -> result

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

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

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

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

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

-- | vkern element
vkern_ :: [Attribute] -> Element

-- | Utility functions to help create SVG path attributes, and transforms.
module Graphics.Svg.Path

-- | Convert a number to Text.
toText :: RealFloat a => a -> Text

-- | moveto (absolute)
mA :: RealFloat a => a -> a -> Text

-- | moveto (relative)
mR :: RealFloat a => a -> a -> Text

-- | lineto (absolute)
lA :: RealFloat a => a -> a -> Text

-- | lineto (relative)
lR :: RealFloat a => a -> a -> Text

-- | horizontal lineto (absolute)
hA :: RealFloat a => a -> Text

-- | horizontal lineto (relative)
hR :: RealFloat a => a -> Text

-- | vertical lineto (absolute)
vA :: RealFloat a => a -> Text

-- | vertical lineto (relative)
vR :: RealFloat a => a -> Text

-- | Cubic Bezier curve (absolute)
cA :: RealFloat a => a -> a -> a -> a -> a -> a -> Text

-- | Cubic Bezier curve (relative)
cR :: RealFloat a => a -> a -> a -> a -> a -> a -> Text

-- | Smooth Cubic Bezier curve (absolute)
sA :: RealFloat a => a -> a -> a -> a -> Text

-- | Smooth Cubic Bezier curve (relative)
sR :: RealFloat a => a -> a -> a -> a -> Text

-- | Quadratic Bezier curve (absolute)
qA :: RealFloat a => a -> a -> a -> a -> Text

-- | Quadratic Bezier curve (relative)
qR :: RealFloat a => a -> a -> a -> a -> Text

-- | Smooth Quadratic Bezier curve (absolute)
tA :: RealFloat a => a -> a -> Text

-- | Smooth Quadratic Bezier curve (relative)
tR :: RealFloat a => a -> a -> Text

-- | Arc (absolute)
aA :: RealFloat a => a -> a -> a -> a -> a -> a -> a -> Text

-- | Arc (relative)
aR :: RealFloat a => a -> a -> a -> a -> a -> a -> a -> Text

-- | closepath
z :: Text

-- | SVG Transform components | Specifies a translation by x and
--   y
translate :: RealFloat a => a -> a -> Text

-- | Specifies a scale operation by x and y
scale :: RealFloat a => a -> a -> Text

-- | Specifies a rotation by rotate-angle degrees
rotate :: RealFloat a => a -> Text

-- | Specifies a rotation by rotate-angle degrees about the given
--   time rx,ry
rotateAround :: RealFloat a => a -> a -> a -> Text

-- | Skew tansformation along x-axis
skewX :: RealFloat a => a -> Text

-- | Skew tansformation along y-axis
skewY :: RealFloat a => a -> Text

-- | Specifies a transform in the form of a transformation matrix
matrix :: RealFloat a => a -> a -> a -> a -> a -> a -> Text

-- | DSL for creating SVG.
module Graphics.Svg
(<>) :: Semigroup a => a -> a -> a
prettyText :: Element -> Text
