{-# LANGUAGE     OverloadedStrings       #-}



module Icons.Textarea where

import           Text.Blaze.Svg11 ((!))
import           Text.Blaze.Svg11 as S
import           Text.Blaze.Svg11.Attributes as A

import Core.Utils


{- |
A list with all the icons of this module, 
together with appropriate names.
This module contains icons suitable for the 
tool bars of a text editor (bold, italic, etc.)

>svgTextarea :: [ (String , S.Svg) ]
>svgTextarea =
>  [ (,) "bold"       bold
>  , (,) "italic"     italic
>  , (,) "link"       link
>  , (,) "image"      imageIcon
>  , (,) "video"      video
>  , (,) "bulletList" bulletList
>  , (,) "numberList" numberList
>  , (,) "header"     header
>  , (,) "hr"         horizontalRule
>  , (,) "undo"       undo
>  , (,) "redo"       redo
>  , (,) "help"       questionMark
>  , (,) "fullscreen" fullscreen
>  , (,) "preview"    preview
>  ]
-}
svgTextarea :: [ (String , S.Svg) ]
svgTextarea :: [(String, MarkupM ())]
svgTextarea =
  [ (,) String
"bold"       MarkupM ()
bold
  , (,) String
"italic"     MarkupM ()
italic
  , (,) String
"link"       MarkupM ()
link
  , (,) String
"image"      MarkupM ()
imageIcon
  , (,) String
"video"      MarkupM ()
video
  , (,) String
"bulletList" MarkupM ()
bulletList
  , (,) String
"numberList" MarkupM ()
numberList
  , (,) String
"header"     MarkupM ()
header
  , (,) String
"hr"         MarkupM ()
horizontalRule
  , (,) String
"undo"       MarkupM ()
undo
  , (,) String
"redo"       MarkupM ()
redo
  , (,) String
"help"       MarkupM ()
questionMark
  , (,) String
"fullscreen" MarkupM ()
fullscreen
  , (,) String
"preview"    MarkupM ()
preview
  ]


--------------------------------------------------------------------------------




{- |
![fill style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/textarea/bold_fill.svg)
![fill and stroke](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/textarea/bold_full.svg)
![stroke style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/textarea/bold_strk.svg)
-}
bold :: S.Svg
bold :: MarkupM ()
bold =
    MarkupM ()
S.path 
      forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
d AttributeValue
dirs
  where
    k0 :: Double
k0 = Double
0.2
    k1 :: Double
k1 = (-Double
0.15)
    k2 :: Double
k2 = Double
0.42
    k3 :: Double
k3 = Double
2 forall a. Num a => a -> a -> a
* Double
k2
    k6 :: Double
k6 = Double
0.2
    dirs :: AttributeValue
dirs = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
      forall a. Show a => a -> a -> Path
m  (-Double
1 forall a. Num a => a -> a -> a
+ Double
k0) (-Double
1 forall a. Num a => a -> a -> a
+ Double
k0)
      forall a. Show a => a -> a -> Path
l   Double
k1       (-Double
1 forall a. Num a => a -> a -> a
+ Double
k0)
      forall a. Show a => a -> a -> Path
l   Double
k1       (-Double
1 forall a. Num a => a -> a -> a
+ Double
k0)
      forall a. Show a => a -> a -> Path
l   Double
k6       (-Double
1 forall a. Num a => a -> a -> a
+ Double
k0)
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa Double
0.25 Double
0.25 Double
0 Bool
True Bool
True  Double
k6         Double
0
      forall a. Show a => a -> a -> Path
l                        (Double
k6 forall a. Num a => a -> a -> a
+ Double
0.1)  Double
0
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa Double
0.4  Double
0.35 Double
0 Bool
True Bool
True (Double
k6 forall a. Num a => a -> a -> a
+ Double
0.1) (Double
1 forall a. Num a => a -> a -> a
- Double
k0)
      forall a. Show a => a -> a -> Path
l   Double
k1       ( Double
1 forall a. Num a => a -> a -> a
- Double
k0)
      forall a. Show a => a -> a -> Path
l  (-Double
1 forall a. Num a => a -> a -> a
+ Double
k0) ( Double
1 forall a. Num a => a -> a -> a
- Double
k0)
      forall a. Show a => a -> a -> Path
l  (-Double
1 forall a. Num a => a -> a -> a
+ Double
k0) ( Double
1 forall a. Num a => a -> a -> a
- Double
k2)
      forall a. Show a => a -> a -> a -> a -> Path
q  (-Double
1 forall a. Num a => a -> a -> a
+ Double
k2) ( Double
1 forall a. Num a => a -> a -> a
- Double
k2) (-Double
1 forall a. Num a => a -> a -> a
+ Double
k2) ( Double
1 forall a. Num a => a -> a -> a
- Double
k3)
      forall a. Show a => a -> a -> Path
l  (-Double
1 forall a. Num a => a -> a -> a
+ Double
k2) (-Double
1 forall a. Num a => a -> a -> a
+ Double
k3)
      forall a. Show a => a -> a -> a -> a -> Path
q  (-Double
1 forall a. Num a => a -> a -> a
+ Double
k2) (-Double
1 forall a. Num a => a -> a -> a
+ Double
k2) (-Double
1 forall a. Num a => a -> a -> a
+ Double
k0) (-Double
1 forall a. Num a => a -> a -> a
+ Double
k2)
      forall a. Show a => a -> a -> Path
l  (-Double
1 forall a. Num a => a -> a -> a
+ Double
k0) (-Double
1 forall a. Num a => a -> a -> a
+ Double
k0)
      Path
S.z
      forall a. Show a => a -> a -> Path
m                         Double
k1          (-(Double
1 forall a. Num a => a -> a -> a
- Double
k0)forall a. Fractional a => a -> a -> a
/Double
2 forall a. Num a => a -> a -> a
+ Double
0.15)
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa Double
0.22 Double
0.22 Double
0 Bool
True Bool
False Double
k1          (-(Double
1 forall a. Num a => a -> a -> a
- Double
k0)forall a. Fractional a => a -> a -> a
/Double
2 forall a. Num a => a -> a -> a
- Double
0.15)
      Path
S.z
      forall a. Show a => a -> a -> Path
m                         Double
k1          Double
0.55
      forall a. Show a => a -> a -> Path
l                         (Double
k6 forall a. Num a => a -> a -> a
- Double
0.1)  Double
0.55
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa Double
0.20 Double
0.15 Double
0 Bool
True Bool
False (Double
k6 forall a. Num a => a -> a -> a
- Double
0.1)  Double
0.2
      forall a. Show a => a -> a -> Path
l                         Double
k1          Double
0.2
      Path
S.z
      


{- |
![fill style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/textarea/italic_fill.svg)
![fill and stroke](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/textarea/italic_full.svg)
![stroke style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/textarea/italic_strk.svg)
-}
italic :: S.Svg
italic :: MarkupM ()
italic =
    MarkupM ()
S.path
      forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
d AttributeValue
dirs
  where
    k1 :: Double
k1 = Double
0.12  -- half width of the line

    k2 :: Double
k2 = Double
1     -- length of the horizontal lines

    k3 :: Double
k3 = Double
0.2   -- distance from the center of the horizontal lines to y-axis

    k4 :: Double
k4 = Double
0.65  -- distance from the center of the horizontal lines to x-axis

    x1 :: Double
x1  = -Double
k3 forall a. Num a => a -> a -> a
- Double
0.5 forall a. Num a => a -> a -> a
* Double
k2
    x1' :: Double
x1' = -Double
k3 forall a. Num a => a -> a -> a
- Double
k1
    x2' :: Double
x2' = -Double
k3 forall a. Num a => a -> a -> a
+ Double
k1
    x2 :: Double
x2  = -Double
k3 forall a. Num a => a -> a -> a
+ Double
0.5 forall a. Num a => a -> a -> a
* Double
k2
    x3 :: Double
x3  =  Double
k3 forall a. Num a => a -> a -> a
- Double
0.5 forall a. Num a => a -> a -> a
* Double
k2
    x3' :: Double
x3' =  Double
k3 forall a. Num a => a -> a -> a
- Double
k1
    x4' :: Double
x4' =  Double
k3 forall a. Num a => a -> a -> a
+ Double
k1
    x4 :: Double
x4  =  Double
k3 forall a. Num a => a -> a -> a
+ Double
0.5 forall a. Num a => a -> a -> a
* Double
k2
    y1 :: Double
y1  =  Double
k4 forall a. Num a => a -> a -> a
+ Double
k1
    y2 :: Double
y2  =  Double
k4 forall a. Num a => a -> a -> a
- Double
k1
    y3 :: Double
y3  = -Double
k4 forall a. Num a => a -> a -> a
+ Double
k1
    y4 :: Double
y4  = -Double
k4 forall a. Num a => a -> a -> a
- Double
k1
    dirs :: AttributeValue
dirs = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
      forall a. Show a => a -> a -> Path
m   Double
x1  Double
y1
      forall a. Show a => a -> a -> Path
l   Double
x2  Double
y1
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa  Double
k1  Double
k1  Double
0  Bool
True  Bool
False Double
x2  Double
y2
      forall a. Show a => a -> a -> Path
l   Double
x2' Double
y2
      forall a. Show a => a -> a -> Path
l   Double
x4' Double
y3 
      forall a. Show a => a -> a -> Path
l   Double
x4  Double
y3
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa  Double
k1  Double
k1  Double
0  Bool
True  Bool
False Double
x4  Double
y4
      forall a. Show a => a -> a -> Path
l   Double
x3  Double
y4
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa  Double
k1  Double
k1  Double
0  Bool
True  Bool
False Double
x3  Double
y3
      forall a. Show a => a -> a -> Path
l   Double
x3' Double
y3
      forall a. Show a => a -> a -> Path
l   Double
x1' Double
y2
      forall a. Show a => a -> a -> Path
l   Double
x1  Double
y2
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa  Double
k1  Double
k1  Double
0  Bool
True  Bool
False Double
x1  Double
y1
      Path
S.z 



{- |
![fill style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/textarea/link_fill.svg)
![fill and stroke](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/textarea/link_full.svg)
![stroke style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/textarea/link_strk.svg)
-}
link :: S.Svg
link :: MarkupM ()
link =
    MarkupM () -> MarkupM ()
g forall a b. (a -> b) -> a -> b
$ do
      MarkupM ()
topPart forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.transform (forall a. Show a => a -> a -> a -> AttributeValue
rotateAround Integer
45 Integer
0 Integer
0)
      MarkupM ()
topPart forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.transform (forall a. Show a => a -> a -> a -> AttributeValue
rotateAround Integer
45 Integer
0 Integer
0 forall a. Semigroup a => a -> a -> a
<> forall a. Show a => a -> a -> a -> AttributeValue
rotateAround Integer
180 Integer
0 Integer
0)
  where
    topPart :: MarkupM ()
topPart = MarkupM ()
S.path forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
d AttributeValue
topPath 
    -----------------

    w1 :: Double
w1 = Double
0.4
    w2 :: Double
w2 = Double
0.24
    -----------------

    h1 :: Double
h1 = Double
1 forall a. Num a => a -> a -> a
- Double
w2
    h2 :: Double
h2 = Double
0.4
    h3 :: Double
h3 = Double
0.3
    h4 :: Double
h4 = Double
h3 forall a. Num a => a -> a -> a
- (Double
w1 forall a. Num a => a -> a -> a
- Double
w2)
    topPath :: AttributeValue
topPath = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
      forall a. Show a => a -> a -> Path
m   (-Double
w1)  (-Double
h3)
      forall a. Show a => a -> a -> Path
l   (-Double
w1)  (-Double
h1)
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa  Double
w1 Double
w1 Double
0 Bool
True  Bool
True  ( Double
w1) (-Double
h1)
      forall a. Show a => a -> a -> Path
l   ( Double
w1)  (-Double
h4)
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa  Double
w1 Double
w1 Double
0 Bool
False Bool
True    Double
0   ( Double
h3)
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa  ((Double
h3 forall a. Num a => a -> a -> a
- Double
h4)forall a. Fractional a => a -> a -> a
/Double
2) ((Double
h3 forall a. Num a => a -> a -> a
- Double
h4)forall a. Fractional a => a -> a -> a
/Double
2) Double
0 Bool
False Bool
True Double
0 ( Double
h4)
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa  Double
w2 Double
w2 Double
0 Bool
False Bool
False ( Double
w2) (-Double
h4)
      forall a. Show a => a -> a -> Path
l   ( Double
w2)  (-Double
h1)
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa  Double
w2 Double
w2 Double
0 Bool
True Bool
False (-Double
w2) (-Double
h1)
      forall a. Show a => a -> a -> Path
l   (-Double
w2)  (-Double
h2)
      Path
S.z



{- |
![fill style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/textarea/image_fill.svg)
![fill and stroke](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/textarea/image_full.svg)
![stroke style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/textarea/image_strk.svg)
-}
imageIcon :: S.Svg
imageIcon :: MarkupM ()
imageIcon =
    MarkupM () -> MarkupM ()
S.g forall a b. (a -> b) -> a -> b
$ do
      MarkupM ()
sun
      MarkupM ()
mountain
      MarkupM ()
imageFrameStroked
      MarkupM ()
imageFrameFilled
  where
    sun :: MarkupM ()
sun =
      MarkupM ()
circle
        forall h. Attributable h => h -> Attribute -> h
! (AttributeValue -> Attribute
cx (AttributeValue -> Attribute) -> Float -> Attribute
.: Float
0.5)
        forall h. Attributable h => h -> Attribute -> h
! (AttributeValue -> Attribute
cy (AttributeValue -> Attribute) -> Float -> Attribute
.: (-Float
0.5))
        forall h. Attributable h => h -> Attribute -> h
! (AttributeValue -> Attribute
r  (AttributeValue -> Attribute) -> Float -> Attribute
.: Float
0.24)
    -------------------------

    x :: Double
x = Double
0.09
    imageFrameFilled :: MarkupM ()
imageFrameFilled =
      MarkupM ()
S.path
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
d AttributeValue
framePath1
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.stroke AttributeValue
"none"
    framePath1 :: AttributeValue
framePath1 = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
      forall a. Show a => a -> a -> Path
m (-Integer
1) (-Integer
1)
      forall a. Show a => a -> a -> Path
l   Integer
1  (-Integer
1)
      forall a. Show a => a -> a -> Path
l   Integer
1    Integer
1
      forall a. Show a => a -> a -> Path
l (-Integer
1)   Integer
1
      Path
S.z
      forall a. Show a => a -> a -> Path
m (-Double
1 forall a. Num a => a -> a -> a
+ Double
x) (-Double
1 forall a. Num a => a -> a -> a
+ Double
x)
      forall a. Show a => a -> a -> Path
l (-Double
1 forall a. Num a => a -> a -> a
+ Double
x) ( Double
1 forall a. Num a => a -> a -> a
- Double
x)
      forall a. Show a => a -> a -> Path
l ( Double
1 forall a. Num a => a -> a -> a
- Double
x) ( Double
1 forall a. Num a => a -> a -> a
- Double
x)
      forall a. Show a => a -> a -> Path
l ( Double
1 forall a. Num a => a -> a -> a
- Double
x) (-Double
1 forall a. Num a => a -> a -> a
+ Double
x)
      Path
S.z
    imageFrameStroked :: MarkupM ()
imageFrameStroked =
      MarkupM ()
S.path
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.fill AttributeValue
"none"
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
d AttributeValue
framePath2
    framePath2 :: AttributeValue
framePath2 = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
      forall a. Show a => a -> a -> Path
m (-Double
0.94) (-Double
0.94)
      forall a. Show a => a -> a -> Path
l   Double
0.94  (-Double
0.94)
      forall a. Show a => a -> a -> Path
l   Double
0.94    Double
0.94
      forall a. Show a => a -> a -> Path
l (-Double
0.94)   Double
0.94
      Path
S.z
    -------------------------

    mountain :: MarkupM ()
mountain =
      MarkupM ()
S.path
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.d AttributeValue
mountainPath
    mountainPath :: AttributeValue
mountainPath = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
      forall a. Show a => a -> a -> Path
m   (-Double
0.92)   Double
0.92
      forall a. Show a => a -> a -> Path
l   (-Double
0.35) (-Double
0.35)
      forall a. Show a => a -> a -> Path
l     Double
0       Double
0.55
      forall a. Show a => a -> a -> Path
l     Double
0.45    Double
0.2
      forall a. Show a => a -> a -> Path
l     Double
0.92    Double
0.92
      Path
S.z



{- |
![fill style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/textarea/video_fill.svg)
![fill and stroke](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/textarea/video_full.svg)
![stroke style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/textarea/video_strk.svg)
-}
video :: S.Svg
video :: MarkupM ()
video =
    MarkupM ()
S.path forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.d AttributeValue
boxPath
  where
    h :: Double
h  = Double
1.2
    w :: Double
w  = Double
1.618 forall a. Num a => a -> a -> a
* Double
h
    y1 :: Double
y1 = -Double
0.5 forall a. Num a => a -> a -> a
* Double
h
    y2 :: Double
y2 =  Double
0.5 forall a. Num a => a -> a -> a
* Double
h
    x1 :: Double
x1 = -Double
0.5 forall a. Num a => a -> a -> a
* Double
w
    x2 :: Double
x2 =  Double
0.5 forall a. Num a => a -> a -> a
* Double
w
    tx :: Double
tx =  Double
0.16
    th :: Double
th =  Double
3 forall a. Num a => a -> a -> a
* Double
tx
    boxPath :: AttributeValue
boxPath = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
      forall a. Show a => a -> a -> Path
m   Double
x1  Double
0
      forall a. Show a => a -> a -> a -> a -> a -> a -> Path
c   Double
x1 (Double
y1 forall a. Num a => a -> a -> a
+ Double
0.1 ) Double
x1 (Double
y1 forall a. Num a => a -> a -> a
+ Double
0  )  Double
0  Double
y1
      forall a. Show a => a -> a -> a -> a -> a -> a -> Path
c   Double
x2 (Double
y1 forall a. Num a => a -> a -> a
+ Double
0.0 ) Double
x2 (Double
y1 forall a. Num a => a -> a -> a
+ Double
0.1) Double
x2   Double
0
      forall a. Show a => a -> a -> a -> a -> a -> a -> Path
c   Double
x2 (Double
y2 forall a. Num a => a -> a -> a
- Double
0.1 ) Double
x2 (Double
y2 forall a. Num a => a -> a -> a
+ Double
0  )  Double
0  Double
y2
      forall a. Show a => a -> a -> a -> a -> a -> a -> Path
c   Double
x1 (Double
y2 forall a. Num a => a -> a -> a
+ Double
0.0 ) Double
x1 (Double
y2 forall a. Num a => a -> a -> a
- Double
0.1) Double
x1   Double
0
      Path
S.z
      forall a. Show a => a -> a -> Path
m  (Double
0 forall a. Num a => a -> a -> a
- Double
tx) (Double
0 forall a. Num a => a -> a -> a
- Double
thforall a. Fractional a => a -> a -> a
/Double
2)
      forall a. Show a => a -> a -> Path
l  (Double
0 forall a. Num a => a -> a -> a
- Double
tx) (Double
0 forall a. Num a => a -> a -> a
+ Double
thforall a. Fractional a => a -> a -> a
/Double
2)
      forall a. Show a => a -> a -> Path
l  (Double
2forall a. Num a => a -> a -> a
*Double
thforall a. Fractional a => a -> a -> a
/Double
3)  Double
0
      Path
S.z



{- |
Helper for both list icons
-}
horizontalBars :: S.Svg
horizontalBars :: MarkupM ()
horizontalBars =
    MarkupM () -> MarkupM ()
S.g forall a b. (a -> b) -> a -> b
$ do
      MarkupM ()
S.path forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
d AttributeValue
topLine
      MarkupM ()
S.path forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
d AttributeValue
midLine
      MarkupM ()
S.path forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
d AttributeValue
botLine
  where
    w :: Double
w  =  Double
0.20
    x1 :: Double
x1 = -Double
0.4
    x2 :: Double
x2 =  Double
0.92
    y1 :: Double
y1 = -Double
0.6
    y2 :: Double
y2 =  Double
0
    y3 :: Double
y3 =  Double
0.6
    topLine :: AttributeValue
topLine = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
      forall a. Show a => a -> a -> Path
m Double
x1 (Double
y1 forall a. Num a => a -> a -> a
- Double
wforall a. Fractional a => a -> a -> a
/Double
2)
      forall a. Show a => a -> a -> Path
l Double
x2 (Double
y1 forall a. Num a => a -> a -> a
- Double
wforall a. Fractional a => a -> a -> a
/Double
2)
      forall a. Show a => a -> a -> Path
l Double
x2 (Double
y1 forall a. Num a => a -> a -> a
+ Double
wforall a. Fractional a => a -> a -> a
/Double
2)
      forall a. Show a => a -> a -> Path
l Double
x1 (Double
y1 forall a. Num a => a -> a -> a
+ Double
wforall a. Fractional a => a -> a -> a
/Double
2)
      Path
S.z
    midLine :: AttributeValue
midLine = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
      forall a. Show a => a -> a -> Path
m Double
x1 (Double
y2 forall a. Num a => a -> a -> a
- Double
wforall a. Fractional a => a -> a -> a
/Double
2)
      forall a. Show a => a -> a -> Path
l Double
x2 (Double
y2 forall a. Num a => a -> a -> a
- Double
wforall a. Fractional a => a -> a -> a
/Double
2)
      forall a. Show a => a -> a -> Path
l Double
x2 (Double
y2 forall a. Num a => a -> a -> a
+ Double
wforall a. Fractional a => a -> a -> a
/Double
2)
      forall a. Show a => a -> a -> Path
l Double
x1 (Double
y2 forall a. Num a => a -> a -> a
+ Double
wforall a. Fractional a => a -> a -> a
/Double
2)
      Path
S.z
    botLine :: AttributeValue
botLine = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
      forall a. Show a => a -> a -> Path
m Double
x1 (Double
y3 forall a. Num a => a -> a -> a
- Double
wforall a. Fractional a => a -> a -> a
/Double
2)
      forall a. Show a => a -> a -> Path
l Double
x2 (Double
y3 forall a. Num a => a -> a -> a
- Double
wforall a. Fractional a => a -> a -> a
/Double
2)
      forall a. Show a => a -> a -> Path
l Double
x2 (Double
y3 forall a. Num a => a -> a -> a
+ Double
wforall a. Fractional a => a -> a -> a
/Double
2)
      forall a. Show a => a -> a -> Path
l Double
x1 (Double
y3 forall a. Num a => a -> a -> a
+ Double
wforall a. Fractional a => a -> a -> a
/Double
2)
      Path
S.z



{- |
![fill style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/textarea/bulletList_fill.svg)
![fill and stroke](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/textarea/bulletList_full.svg)
![stroke style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/textarea/bulletList_strk.svg)
-}
bulletList :: S.Svg
bulletList :: MarkupM ()
bulletList =
    MarkupM () -> MarkupM ()
S.g forall a b. (a -> b) -> a -> b
$ do
      MarkupM ()
horizontalBars
      MarkupM ()
bullets 
  where
    radius :: Float
radius = Float
0.12
    x1 :: Float
x1 = -Float
0.75
    y1 :: Float
y1 = -Float
0.6
    y2 :: Float
y2 =  Float
0
    y3 :: Float
y3 =  Float
0.6
    bullets :: MarkupM ()
bullets = MarkupM () -> MarkupM ()
S.g forall a b. (a -> b) -> a -> b
$ do
      MarkupM ()
circle forall h. Attributable h => h -> Attribute -> h
! (AttributeValue -> Attribute
cx (AttributeValue -> Attribute) -> Float -> Attribute
.: Float
x1) forall h. Attributable h => h -> Attribute -> h
! (AttributeValue -> Attribute
cy (AttributeValue -> Attribute) -> Float -> Attribute
.: Float
y1) forall h. Attributable h => h -> Attribute -> h
! (AttributeValue -> Attribute
r (AttributeValue -> Attribute) -> Float -> Attribute
.: Float
radius) 
      MarkupM ()
circle forall h. Attributable h => h -> Attribute -> h
! (AttributeValue -> Attribute
cx (AttributeValue -> Attribute) -> Float -> Attribute
.: Float
x1) forall h. Attributable h => h -> Attribute -> h
! (AttributeValue -> Attribute
cy (AttributeValue -> Attribute) -> Float -> Attribute
.: Float
y2) forall h. Attributable h => h -> Attribute -> h
! (AttributeValue -> Attribute
r (AttributeValue -> Attribute) -> Float -> Attribute
.: Float
radius) 
      MarkupM ()
circle forall h. Attributable h => h -> Attribute -> h
! (AttributeValue -> Attribute
cx (AttributeValue -> Attribute) -> Float -> Attribute
.: Float
x1) forall h. Attributable h => h -> Attribute -> h
! (AttributeValue -> Attribute
cy (AttributeValue -> Attribute) -> Float -> Attribute
.: Float
y3) forall h. Attributable h => h -> Attribute -> h
! (AttributeValue -> Attribute
r (AttributeValue -> Attribute) -> Float -> Attribute
.: Float
radius) 



{- |
![fill style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/textarea/numberList_fill.svg)
![fill and stroke](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/textarea/numberList_full.svg)
![stroke style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/textarea/numberList_strk.svg)
-}
numberList :: Svg
numberList :: MarkupM ()
numberList =
    MarkupM () -> MarkupM ()
S.g forall a b. (a -> b) -> a -> b
$ do
      MarkupM ()
horizontalBars
      MarkupM ()
numbers
  where
    x1 :: Float
x1 = -Float
0.75
    y1 :: Float
y1 = -Float
0.6
    y2 :: Float
y2 =  Float
0
    y3 :: Float
y3 =  Float
0.6
    number :: MarkupM () -> Float -> MarkupM ()
number MarkupM ()
k Float
h = 
      MarkupM () -> MarkupM ()
S.text_ MarkupM ()
k
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
dominantBaseline AttributeValue
"central"
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
textAnchor AttributeValue
"middle"
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
fontFamily AttributeValue
"monospace"
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
fontWeight AttributeValue
"bold"
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
fontSize   AttributeValue
"0.5"
        forall h. Attributable h => h -> Attribute -> h
! (AttributeValue -> Attribute
A.x (AttributeValue -> Attribute) -> Float -> Attribute
.: Float
x1)
        forall h. Attributable h => h -> Attribute -> h
! (AttributeValue -> Attribute
A.y (AttributeValue -> Attribute) -> Float -> Attribute
.: Float
h)
    numbers :: MarkupM ()
numbers = 
      MarkupM () -> MarkupM ()
S.g forall a b. (a -> b) -> a -> b
$ do
        MarkupM () -> Float -> MarkupM ()
number MarkupM ()
"1" Float
y1
        MarkupM () -> Float -> MarkupM ()
number MarkupM ()
"2" Float
y2
        MarkupM () -> Float -> MarkupM ()
number MarkupM ()
"3" Float
y3



{- |
![fill style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/textarea/header_fill.svg)
![fill and stroke](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/textarea/header_full.svg)
![stroke style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/textarea/header_strk.svg)
-}
header :: S.Svg
header :: MarkupM ()
header =
    MarkupM () -> MarkupM ()
S.g forall a b. (a -> b) -> a -> b
$ do
      MarkupM ()
S.path forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
d AttributeValue
line1
      MarkupM ()
S.path forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
d AttributeValue
line2
      MarkupM ()
S.path forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
d AttributeValue
line3 forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
opacity AttributeValue
"0.4"
      MarkupM ()
S.path forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
d AttributeValue
line4 forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
opacity AttributeValue
"0.4"
      MarkupM ()
S.path forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
d AttributeValue
line5 forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
opacity AttributeValue
"0.4"
  where
    l1 :: Double
l1 = -Double
0.9
    l2 :: Double
l2 = -Double
0.5
    r2 :: Double
r2 =  Double
0.5
    r1 :: Double
r1 =  Double
0.9
    h :: Double
h = Double
2forall a. Fractional a => a -> a -> a
/Double
6
    w :: Double
w = Double
0.2
    line1 :: AttributeValue
line1 = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
       forall a. Show a => a -> a -> Path
m Double
l1 (-Double
2forall a. Num a => a -> a -> a
*Double
h forall a. Num a => a -> a -> a
- Double
wforall a. Fractional a => a -> a -> a
/Double
2)
       forall a. Show a => a -> a -> Path
l Double
r1 (-Double
2forall a. Num a => a -> a -> a
*Double
h forall a. Num a => a -> a -> a
- Double
wforall a. Fractional a => a -> a -> a
/Double
2)
       forall a. Show a => a -> a -> Path
l Double
r1 (-Double
2forall a. Num a => a -> a -> a
*Double
h forall a. Num a => a -> a -> a
+ Double
wforall a. Fractional a => a -> a -> a
/Double
2)
       forall a. Show a => a -> a -> Path
l Double
l1 (-Double
2forall a. Num a => a -> a -> a
*Double
h forall a. Num a => a -> a -> a
+ Double
wforall a. Fractional a => a -> a -> a
/Double
2)
       Path
S.z
    line2 :: AttributeValue
line2 = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
       forall a. Show a => a -> a -> Path
m Double
l2 (-Double
1forall a. Num a => a -> a -> a
*Double
h forall a. Num a => a -> a -> a
- Double
wforall a. Fractional a => a -> a -> a
/Double
2)
       forall a. Show a => a -> a -> Path
l Double
r2 (-Double
1forall a. Num a => a -> a -> a
*Double
h forall a. Num a => a -> a -> a
- Double
wforall a. Fractional a => a -> a -> a
/Double
2)
       forall a. Show a => a -> a -> Path
l Double
r2 (-Double
1forall a. Num a => a -> a -> a
*Double
h forall a. Num a => a -> a -> a
+ Double
wforall a. Fractional a => a -> a -> a
/Double
2)
       forall a. Show a => a -> a -> Path
l Double
l2 (-Double
1forall a. Num a => a -> a -> a
*Double
h forall a. Num a => a -> a -> a
+ Double
wforall a. Fractional a => a -> a -> a
/Double
2)
       Path
S.z
    line3 :: AttributeValue
line3 = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
       forall a. Show a => a -> a -> Path
m Double
l1 (   Double
0 forall a. Num a => a -> a -> a
- Double
wforall a. Fractional a => a -> a -> a
/Double
2)
       forall a. Show a => a -> a -> Path
l Double
r1 (   Double
0 forall a. Num a => a -> a -> a
- Double
wforall a. Fractional a => a -> a -> a
/Double
2)
       forall a. Show a => a -> a -> Path
l Double
r1 (   Double
0 forall a. Num a => a -> a -> a
+ Double
wforall a. Fractional a => a -> a -> a
/Double
2)
       forall a. Show a => a -> a -> Path
l Double
l1 (   Double
0 forall a. Num a => a -> a -> a
+ Double
wforall a. Fractional a => a -> a -> a
/Double
2)
       Path
S.z
    line4 :: AttributeValue
line4 = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
       forall a. Show a => a -> a -> Path
m Double
l2 ( Double
1forall a. Num a => a -> a -> a
*Double
h forall a. Num a => a -> a -> a
- Double
wforall a. Fractional a => a -> a -> a
/Double
2)
       forall a. Show a => a -> a -> Path
l Double
r2 ( Double
1forall a. Num a => a -> a -> a
*Double
h forall a. Num a => a -> a -> a
- Double
wforall a. Fractional a => a -> a -> a
/Double
2)
       forall a. Show a => a -> a -> Path
l Double
r2 ( Double
1forall a. Num a => a -> a -> a
*Double
h forall a. Num a => a -> a -> a
+ Double
wforall a. Fractional a => a -> a -> a
/Double
2)
       forall a. Show a => a -> a -> Path
l Double
l2 ( Double
1forall a. Num a => a -> a -> a
*Double
h forall a. Num a => a -> a -> a
+ Double
wforall a. Fractional a => a -> a -> a
/Double
2)
       Path
S.z
    line5 :: AttributeValue
line5 = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
       forall a. Show a => a -> a -> Path
m Double
l1 ( Double
2forall a. Num a => a -> a -> a
*Double
h forall a. Num a => a -> a -> a
- Double
wforall a. Fractional a => a -> a -> a
/Double
2)
       forall a. Show a => a -> a -> Path
l Double
r1 ( Double
2forall a. Num a => a -> a -> a
*Double
h forall a. Num a => a -> a -> a
- Double
wforall a. Fractional a => a -> a -> a
/Double
2)
       forall a. Show a => a -> a -> Path
l Double
r1 ( Double
2forall a. Num a => a -> a -> a
*Double
h forall a. Num a => a -> a -> a
+ Double
wforall a. Fractional a => a -> a -> a
/Double
2)
       forall a. Show a => a -> a -> Path
l Double
l1 ( Double
2forall a. Num a => a -> a -> a
*Double
h forall a. Num a => a -> a -> a
+ Double
wforall a. Fractional a => a -> a -> a
/Double
2)
       Path
S.z



{- |
![fill style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/textarea/hr_fill.svg)
![fill and stroke](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/textarea/hr_full.svg)
![stroke style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/textarea/hr_strk.svg)
-}
horizontalRule :: S.Svg
horizontalRule :: MarkupM ()
horizontalRule =
    MarkupM () -> MarkupM ()
S.g forall a b. (a -> b) -> a -> b
$ do
      MarkupM ()
S.path forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
d AttributeValue
line1 forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
opacity AttributeValue
"0.4"
      MarkupM ()
S.path forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
d AttributeValue
line2 forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
opacity AttributeValue
"0.4"
      MarkupM ()
line3 
      MarkupM ()
S.path forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
d AttributeValue
line4 forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
opacity AttributeValue
"0.4"
      MarkupM ()
S.path forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
d AttributeValue
line5 forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
opacity AttributeValue
"0.4"
  where
    l1 :: Float
l1 = -Float
0.9
    l2 :: Float
l2 = -Float
0.5
    r2 :: Float
r2 =  Float
0.5
    r1 :: Float
r1 =  Float
0.9
    h :: Float
h = Float
2forall a. Fractional a => a -> a -> a
/Float
6
    w :: Float
w = Float
0.2
    line1 :: AttributeValue
line1 = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
       forall a. Show a => a -> a -> Path
m Float
l1 (-Float
2forall a. Num a => a -> a -> a
*Float
h forall a. Num a => a -> a -> a
- Float
wforall a. Fractional a => a -> a -> a
/Float
2)
       forall a. Show a => a -> a -> Path
l Float
r1 (-Float
2forall a. Num a => a -> a -> a
*Float
h forall a. Num a => a -> a -> a
- Float
wforall a. Fractional a => a -> a -> a
/Float
2)
       forall a. Show a => a -> a -> Path
l Float
r1 (-Float
2forall a. Num a => a -> a -> a
*Float
h forall a. Num a => a -> a -> a
+ Float
wforall a. Fractional a => a -> a -> a
/Float
2)
       forall a. Show a => a -> a -> Path
l Float
l1 (-Float
2forall a. Num a => a -> a -> a
*Float
h forall a. Num a => a -> a -> a
+ Float
wforall a. Fractional a => a -> a -> a
/Float
2)
       Path
S.z
    line2 :: AttributeValue
line2 = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
       forall a. Show a => a -> a -> Path
m Float
l2 (-Float
1forall a. Num a => a -> a -> a
*Float
h forall a. Num a => a -> a -> a
- Float
wforall a. Fractional a => a -> a -> a
/Float
2)
       forall a. Show a => a -> a -> Path
l Float
r2 (-Float
1forall a. Num a => a -> a -> a
*Float
h forall a. Num a => a -> a -> a
- Float
wforall a. Fractional a => a -> a -> a
/Float
2)
       forall a. Show a => a -> a -> Path
l Float
r2 (-Float
1forall a. Num a => a -> a -> a
*Float
h forall a. Num a => a -> a -> a
+ Float
wforall a. Fractional a => a -> a -> a
/Float
2)
       forall a. Show a => a -> a -> Path
l Float
l2 (-Float
1forall a. Num a => a -> a -> a
*Float
h forall a. Num a => a -> a -> a
+ Float
wforall a. Fractional a => a -> a -> a
/Float
2)
       Path
S.z
    square :: Float -> MarkupM ()
square Float
leftX =
      MarkupM ()
S.rect
        forall h. Attributable h => h -> Attribute -> h
! (AttributeValue -> Attribute
A.x    (AttributeValue -> Attribute) -> Float -> Attribute
.: Float
leftX)
        forall h. Attributable h => h -> Attribute -> h
! (AttributeValue -> Attribute
A.y    (AttributeValue -> Attribute) -> Float -> Attribute
.: Float
0 forall a. Num a => a -> a -> a
- Float
wforall a. Fractional a => a -> a -> a
/Float
2)
        forall h. Attributable h => h -> Attribute -> h
! (AttributeValue -> Attribute
width  (AttributeValue -> Attribute) -> Float -> Attribute
.: Float
w)
        forall h. Attributable h => h -> Attribute -> h
! (AttributeValue -> Attribute
height (AttributeValue -> Attribute) -> Float -> Attribute
.: Float
w)
    line3 :: MarkupM ()
line3 = do
      Float -> MarkupM ()
square Float
l1
      Float -> MarkupM ()
square Float
l2
      Float -> MarkupM ()
square ( Float
0 forall a. Num a => a -> a -> a
- Float
wforall a. Fractional a => a -> a -> a
/Float
2)
      Float -> MarkupM ()
square (Float
r2 forall a. Num a => a -> a -> a
- Float
w)
      Float -> MarkupM ()
square (Float
r1 forall a. Num a => a -> a -> a
- Float
w)
    line4 :: AttributeValue
line4 = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
       forall a. Show a => a -> a -> Path
m Float
l2 ( Float
1forall a. Num a => a -> a -> a
*Float
h forall a. Num a => a -> a -> a
- Float
wforall a. Fractional a => a -> a -> a
/Float
2)
       forall a. Show a => a -> a -> Path
l Float
r2 ( Float
1forall a. Num a => a -> a -> a
*Float
h forall a. Num a => a -> a -> a
- Float
wforall a. Fractional a => a -> a -> a
/Float
2)
       forall a. Show a => a -> a -> Path
l Float
r2 ( Float
1forall a. Num a => a -> a -> a
*Float
h forall a. Num a => a -> a -> a
+ Float
wforall a. Fractional a => a -> a -> a
/Float
2)
       forall a. Show a => a -> a -> Path
l Float
l2 ( Float
1forall a. Num a => a -> a -> a
*Float
h forall a. Num a => a -> a -> a
+ Float
wforall a. Fractional a => a -> a -> a
/Float
2)
       Path
S.z
    line5 :: AttributeValue
line5 = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
       forall a. Show a => a -> a -> Path
m Float
l1 ( Float
2forall a. Num a => a -> a -> a
*Float
h forall a. Num a => a -> a -> a
- Float
wforall a. Fractional a => a -> a -> a
/Float
2)
       forall a. Show a => a -> a -> Path
l Float
r1 ( Float
2forall a. Num a => a -> a -> a
*Float
h forall a. Num a => a -> a -> a
- Float
wforall a. Fractional a => a -> a -> a
/Float
2)
       forall a. Show a => a -> a -> Path
l Float
r1 ( Float
2forall a. Num a => a -> a -> a
*Float
h forall a. Num a => a -> a -> a
+ Float
wforall a. Fractional a => a -> a -> a
/Float
2)
       forall a. Show a => a -> a -> Path
l Float
l1 ( Float
2forall a. Num a => a -> a -> a
*Float
h forall a. Num a => a -> a -> a
+ Float
wforall a. Fractional a => a -> a -> a
/Float
2)
       Path
S.z



{- |
![fill style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/textarea/undo_fill.svg)
![fill and stroke](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/textarea/undo_full.svg)
![stroke style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/textarea/undo_strk.svg)
-}
undo :: S.Svg
undo :: MarkupM ()
undo =
  MarkupM ()
curvyArrowLeft
    forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.transform (forall a. Show a => a -> a -> AttributeValue
translate Double
0 Double
0.1)



{- |
![fill style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/textarea/redo_fill.svg)
![fill and stroke](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/textarea/redo_full.svg)
![stroke style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/textarea/redo_strk.svg)
-}
redo :: S.Svg
redo :: MarkupM ()
redo =
  MarkupM ()
curvyArrowLeft
    forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.transform (forall a. Show a => a -> a -> AttributeValue
translate Double
0 Double
0.1 forall a. Semigroup a => a -> a -> a
<> AttributeValue
horizontalMirrorMatrix)



{- |
Helper for both undo and redo icons
-}
curvyArrowLeft :: S.Svg
curvyArrowLeft :: MarkupM ()
curvyArrowLeft =
  MarkupM ()
S.path
    forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
d AttributeValue
dirs
    forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
strokeLinejoin AttributeValue
"round"
  where
    r1 :: Double
r1 = Double
0.5
    r2 :: Double
r2 = Double
0.66
    rm :: Double
rm = (Double
r2 forall a. Num a => a -> a -> a
- Double
r1)
    k1 :: Double
k1 = Double
0.24
    k2 :: Double
k2 = Double
k1 forall a. Num a => a -> a -> a
+ Double
rmforall a. Fractional a => a -> a -> a
/Double
2
    dirs :: AttributeValue
dirs = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
      forall a. Show a => a -> a -> Path
m   (-Double
r1) Double
0
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa  (Double
rmforall a. Fractional a => a -> a -> a
/Double
2) (Double
rmforall a. Fractional a => a -> a -> a
/Double
2)  Double
0 Bool
False Bool
False (-Double
r2)   Double
0
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa   Double
r2     Double
r2     Double
0 Bool
True  Bool
False   Double
0   (-Double
r2)
      forall a. Show a => a -> a -> Path
lr    Double
k1  (-Double
k1)
      forall a. Show a => a -> a -> Path
lr  (-Double
rm)   Double
0
      forall a. Show a => a -> a -> Path
lr  (-Double
k2)   Double
k2
      forall a. Show a => a -> a -> Path
lr    Double
k2    Double
k2
      forall a. Show a => a -> a -> Path
lr    Double
rm    Double
0
      forall a. Show a => a -> a -> Path
lr  (-Double
k1) (-Double
k1)
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa   Double
r1     Double
r1     Double
0 Bool
True  Bool
True  (-Double
r1)   Double
0
      Path
S.z



{- |
![fill style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/textarea/help_fill.svg)
![fill and stroke](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/textarea/help_full.svg)
![stroke style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/textarea/help_strk.svg)
-}
questionMark :: S.Svg
questionMark :: MarkupM ()
questionMark =
    MarkupM ()
S.path
      forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.d AttributeValue
dirs
      forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.transform (forall a. Show a => a -> a -> AttributeValue
translate Double
0 (-Double
0.35))
  where
    r1 :: Double
r1 = Double
0.3
    r2 :: Double
r2 = Double
0.5
    rm :: Double
rm = Double
r2 forall a. Num a => a -> a -> a
- Double
r1
    dirs :: AttributeValue
dirs = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
      forall a. Show a => a -> a -> Path
m   (-Double
r1)    Double
0
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa  ( Double
rmforall a. Fractional a => a -> a -> a
/Double
2) (Double
rmforall a. Fractional a => a -> a -> a
/Double
2)  Double
0   Bool
True  Bool
True  (-Double
r2)  Double
0
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa  ( Double
r2)   (Double
r2)    Double
0   Bool
True  Bool
True  ( Double
r2)  Double
0
      forall a. Show a => a -> a -> a -> a -> a -> a -> Path
c   ( Double
r2)   (Double
r2 forall a. Num a => a -> a -> a
- Double
0.17)  (Double
rmforall a. Fractional a => a -> a -> a
/Double
2) (Double
r2 forall a. Num a => a -> a -> a
- Double
0.2) (Double
rmforall a. Fractional a => a -> a -> a
/Double
2) Double
0.5
      forall a. Show a => a -> a -> Path
l   ( Double
rmforall a. Fractional a => a -> a -> a
/Double
2) Double
0.75
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa  ( Double
rmforall a. Fractional a => a -> a -> a
/Double
2) (Double
rmforall a. Fractional a => a -> a -> a
/Double
2)  Double
0   Bool
True  Bool
True  (-Double
rmforall a. Fractional a => a -> a -> a
/Double
2)  Double
0.75
      forall a. Show a => a -> a -> Path
l   (-Double
rmforall a. Fractional a => a -> a -> a
/Double
2) Double
0.5
      forall a. Show a => a -> a -> a -> a -> a -> a -> Path
c   (-Double
rmforall a. Fractional a => a -> a -> a
/Double
2) (Double
r1 forall a. Num a => a -> a -> a
- Double
0.15)  (Double
r1)   (Double
r1 forall a. Num a => a -> a -> a
- Double
0.1) (Double
r1)   Double
0  
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa  ( Double
r1)   (Double
r1)    Double
0   Bool
True  Bool
False (-Double
r1)  Double
0
      Path
S.z
      forall a. Show a => a -> a -> Path
m   (-Double
0.01)  Double
1
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa  ( Double
rmforall a. Fractional a => a -> a -> a
/Double
2) (Double
rmforall a. Fractional a => a -> a -> a
/Double
2)  Double
0  Bool
True Bool
False  Double
0.01 Double
1
      Path
S.z



{- |
![fill style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/textarea/fullscreen_fill.svg)
![fill and stroke](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/textarea/fullscreen_full.svg)
![stroke style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/textarea/fullscreen_strk.svg)
-}
fullscreen :: S.Svg
fullscreen :: MarkupM ()
fullscreen =
    MarkupM () -> MarkupM ()
S.g forall a b. (a -> b) -> a -> b
$ do
      MarkupM ()
corner
      MarkupM ()
corner forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.transform (forall a. Show a => a -> a -> a -> AttributeValue
rotateAround  Integer
90 Integer
0 Integer
0)
      MarkupM ()
corner forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.transform (forall a. Show a => a -> a -> a -> AttributeValue
rotateAround Integer
180 Integer
0 Integer
0)
      MarkupM ()
corner forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.transform (forall a. Show a => a -> a -> a -> AttributeValue
rotateAround Integer
270 Integer
0 Integer
0)
 where
   k1 :: Double
k1 = Double
0.9
   k2 :: Double
k2 = Double
0.7
   k3 :: Double
k3 = Double
0.3
   km :: Double
km = Double
k1 forall a. Num a => a -> a -> a
- Double
k2
   corner :: MarkupM ()
corner =
     MarkupM ()
S.path
      forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
d AttributeValue
dirs
      forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
strokeLinejoin AttributeValue
"round"
   dirs :: AttributeValue
dirs = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
      forall a. Show a => a -> a -> Path
m   Double
k1     Double
k1
      forall a. Show a => a -> a -> Path
l   Double
k3     Double
k1
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa (Double
kmforall a. Fractional a => a -> a -> a
/Double
2) (Double
kmforall a. Fractional a => a -> a -> a
/Double
2)  Double
0  Bool
True  Bool
True  Double
k3  Double
k2
      forall a. Show a => a -> a -> Path
l   Double
k2     Double
k2
      forall a. Show a => a -> a -> Path
l   Double
k2     Double
k3
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa (Double
kmforall a. Fractional a => a -> a -> a
/Double
2) (Double
kmforall a. Fractional a => a -> a -> a
/Double
2)  Double
0  Bool
True  Bool
True  Double
k1  Double
k3
      Path
S.z
     


{- |
![fill style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/textarea/preview_fill.svg)
![fill and stroke](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/textarea/preview_full.svg)
![stroke style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/textarea/preview_strk.svg)
-}
preview :: S.Svg
preview :: MarkupM ()
preview = 
    MarkupM () -> MarkupM ()
S.g forall a b. (a -> b) -> a -> b
$ do
      MarkupM ()
lines
      MarkupM ()
rectangle
  where
    kx :: Double
kx = Double
0.2
    ky :: Double
ky = Double
0.4
    w :: Double
w  = Double
0.16
    lines :: MarkupM ()
lines = 
      MarkupM () -> MarkupM ()
S.g forall a b. (a -> b) -> a -> b
$ do
        Double -> MarkupM ()
line (-Double
2 forall a. Num a => a -> a -> a
* Double
ky)
        Double -> MarkupM ()
line (-Double
1 forall a. Num a => a -> a -> a
* Double
ky)
        Double -> MarkupM ()
line ( Double
0 forall a. Num a => a -> a -> a
* Double
ky)
        Double -> MarkupM ()
line ( Double
1 forall a. Num a => a -> a -> a
* Double
ky)
        Double -> MarkupM ()
line ( Double
2 forall a. Num a => a -> a -> a
* Double
ky)
    line :: Double -> MarkupM ()
line Double
y =
      MarkupM ()
S.path
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
fill AttributeValue
"none"
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
d (Double -> AttributeValue
lineDirs Double
y)
    lineDirs :: Double -> AttributeValue
lineDirs Double
y = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
      forall a. Show a => a -> a -> Path
m   (-Double
1 forall a. Num a => a -> a -> a
+ Double
kx) (Double
y forall a. Num a => a -> a -> a
- Double
wforall a. Fractional a => a -> a -> a
/Double
2)
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa  (Double
wforall a. Fractional a => a -> a -> a
/Double
2) (Double
wforall a. Fractional a => a -> a -> a
/Double
2) Double
0 Bool
True  Bool
False (-Double
1 forall a. Num a => a -> a -> a
+ Double
kx) (Double
y forall a. Num a => a -> a -> a
+ Double
wforall a. Fractional a => a -> a -> a
/Double
2) 
      forall a. Show a => a -> a -> Path
l   ( Double
0     ) (Double
y forall a. Num a => a -> a -> a
+ Double
wforall a. Fractional a => a -> a -> a
/Double
2)
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa  (Double
wforall a. Fractional a => a -> a -> a
/Double
2) (Double
wforall a. Fractional a => a -> a -> a
/Double
2) Double
0 Bool
True  Bool
False ( Double
0     ) (Double
y forall a. Num a => a -> a -> a
- Double
wforall a. Fractional a => a -> a -> a
/Double
2)
      Path
S.z
    rectangle :: MarkupM ()
rectangle =
      MarkupM ()
S.path 
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
strokeLinejoin AttributeValue
"round"
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
transform (forall a. Show a => a -> a -> AttributeValue
translate Double
0.1 Double
0)
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
d AttributeValue
rectDirs
    rectDirs :: AttributeValue
rectDirs = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
      forall a. Show a => a -> a -> Path
m   (Double
0 forall a. Num a => a -> a -> a
+ Double
kx)  (-Double
2 forall a. Num a => a -> a -> a
* Double
ky forall a. Num a => a -> a -> a
- Double
wforall a. Fractional a => a -> a -> a
/Double
2)
      forall a. Show a => a -> a -> Path
l   (Double
1 forall a. Num a => a -> a -> a
- Double
kx)  (-Double
2 forall a. Num a => a -> a -> a
* Double
ky forall a. Num a => a -> a -> a
- Double
wforall a. Fractional a => a -> a -> a
/Double
2)
      forall a. Show a => a -> a -> Path
l   (Double
1 forall a. Num a => a -> a -> a
- Double
kx)  ( Double
2 forall a. Num a => a -> a -> a
* Double
ky forall a. Num a => a -> a -> a
+ Double
wforall a. Fractional a => a -> a -> a
/Double
2)
      forall a. Show a => a -> a -> Path
l   (Double
0 forall a. Num a => a -> a -> a
+ Double
kx)  ( Double
2 forall a. Num a => a -> a -> a
* Double
ky forall a. Num a => a -> a -> a
+ Double
wforall a. Fractional a => a -> a -> a
/Double
2)
      Path
S.z