{-# LANGUAGE     OverloadedStrings       #-}



module SvgIcons.Icons.Computer 
  ( svgComputer
  , ring
  , accept
  , cancel
  , plus
  , maximize
  , minimize
  , menuDots
  , menuLines
  , powerButton 
  , warning
  , diskette
  , save
  , dustBin
  ) where

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

import SvgIcons.Core.Utils



{- |
A list with all the icons of this module, 
together with appropriate names.

>svgComputer :: [ (String , S.Svg) ]
>svgComputer =
>  [ (,) "ring"        ring
>  , (,) "accept"      accept
>  , (,) "cancel"      cancel
>  , (,) "plus"        plus
>  , (,) "maximize"    maximize
>  , (,) "minimize"    minimize
>  , (,) "menuDots"    menuDots
>  , (,) "menuLines"   menuLines
>  , (,) "powerButton" powerButton 
>  , (,) "warning"     warning
>  , (,) "diskette"    diskette
>  , (,) "save"        save
>  , (,) "dustBin"     dustBin
>  ]
-}
svgComputer :: [ (String , S.Svg) ]
svgComputer :: [(String, MarkupM ())]
svgComputer =
  [ (,) String
"ring"        MarkupM ()
ring
  , (,) String
"accept"      MarkupM ()
accept
  , (,) String
"cancel"      MarkupM ()
cancel
  , (,) String
"plus"        MarkupM ()
plus
  , (,) String
"maximize"    MarkupM ()
maximize
  , (,) String
"minimize"    MarkupM ()
minimize
  , (,) String
"menuDots"    MarkupM ()
menuDots
  , (,) String
"menuLines"   MarkupM ()
menuLines
  , (,) String
"powerButton" MarkupM ()
powerButton 
  , (,) String
"warning"     MarkupM ()
warning
  , (,) String
"diskette"    MarkupM ()
diskette
  , (,) String
"save"        MarkupM ()
save
  , (,) String
"dustBin"     MarkupM ()
dustBin
  ]


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



{- |
![fill style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/computer/ring_fill.svg)

![fill and stroke](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/computer/ring_full.svg)

![stroke style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/computer/ring_strk.svg)
-}
ring :: Svg
ring :: MarkupM ()
ring =
  MarkupM () -> MarkupM ()
S.g forall a b. (a -> b) -> a -> b
$ do
    MarkupM ()
S.path
      forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.d AttributeValue
dirs
  where
    r1 :: Double
r1 = Double
0.75
    r2 :: Double
r2 = Double
0.95
    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
r1  Double
r1  Double
0  Bool
True  Bool
False  Double
r1  Double
0.0001
      Path
S.z
      forall a. Show a => a -> a -> Path
m   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.0001)
      Path
S.z





{- |
![fill style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/computer/accept_fill.svg)

![fill and stroke](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/computer/accept_full.svg)

![stroke style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/computer/accept_strk.svg)
-}
accept :: Svg
accept :: MarkupM ()
accept =
  MarkupM () -> MarkupM ()
S.g forall a b. (a -> b) -> a -> b
$ do
    MarkupM ()
S.path
      forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.strokeLinejoin AttributeValue
"round"
      forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
d AttributeValue
dirs
      forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.transform (forall a. Show a => a -> a -> AttributeValue
translate (-Double
0.3) Double
0.3 forall a. Semigroup a => a -> a -> a
<> forall a. Show a => a -> a -> a -> AttributeValue
rotateAround Integer
45 Integer
0 Integer
0)
  where
    k1 :: Double
k1 = Double
0.1
    k2 :: Double
k2 = Double
0.5
    k3 :: Double
k3 = Double
1.3
    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
k2) (-Double
k1)
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa    Double
k1    Double
k1   Double
0  Bool
True  Bool
False (-Double
k2) ( Double
k1)
      forall a. Show a => a -> a -> Path
l   ( Double
k1) ( Double
k1)
      forall a. Show a => a -> a -> Path
l   ( Double
k1) (-Double
k3)
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa    Double
k1    Double
k1   Double
0  Bool
True  Bool
False (-Double
k1) (-Double
k3)
      Path
S.z



{- |
![fill style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/computer/plus_fill.svg)

![fill and stroke](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/computer/plus_full.svg)

![stroke style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/computer/plus_strk.svg)
-}
plus :: Svg
plus :: MarkupM ()
plus =
    MarkupM ()
S.path 
      forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.d AttributeValue
dirs
  where
    k1 :: Double
k1 = Double
0.1
    k2 :: Double
k2 = Double
0.8
    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
k1) (-Double
k2)
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa    Double
k1    Double
k1   Double
0  Bool
True  Bool
False (-Double
k1) (-Double
k2)
      forall a. Show a => a -> a -> Path
l   (-Double
k1) (-Double
k1)
      forall a. Show a => a -> a -> Path
l   (-Double
k2) (-Double
k1)
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa    Double
k1    Double
k1   Double
0  Bool
True  Bool
False (-Double
k2) ( Double
k1)
      forall a. Show a => a -> a -> Path
l   (-Double
k1) ( Double
k1)
      forall a. Show a => a -> a -> Path
l   (-Double
k1) ( Double
k2)
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa    Double
k1    Double
k1   Double
0  Bool
True  Bool
False ( Double
k1) ( Double
k2)
      forall a. Show a => a -> a -> Path
l   ( Double
k1) ( Double
k1)
      forall a. Show a => a -> a -> Path
l   ( Double
k2) ( Double
k1)
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa    Double
k1    Double
k1   Double
0  Bool
True  Bool
False ( Double
k2) (-Double
k1)
      Path
S.z



{- |
![fill style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/computer/cancel_fill.svg)

![fill and stroke](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/computer/cancel_full.svg)

![stroke style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/computer/cancel_strk.svg)
-}
cancel :: Svg
cancel :: MarkupM ()
cancel =
  MarkupM () -> MarkupM ()
S.g forall a b. (a -> b) -> a -> b
$ 
    MarkupM ()
plus 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)



{- |
![fill style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/computer/warning_fill.svg)

![fill and stroke](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/computer/warning_full.svg)

![stroke style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/computer/warning_strk.svg)
-}
warning :: Svg
warning :: MarkupM ()
warning = 
  MarkupM () -> MarkupM ()
S.g forall a b. (a -> b) -> a -> b
$ 
    MarkupM () -> MarkupM ()
S.g 
      forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.transform (forall a. Show a => a -> a -> AttributeValue
translate Double
0 Double
0.2)
      forall a b. (a -> b) -> a -> b
$ do
        MarkupM ()
S.path
          forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
d AttributeValue
triangleDirs
          forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
strokeLinejoin AttributeValue
"round"
          forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
fillRule AttributeValue
"evenodd"
        MarkupM ()
S.path
          forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
d AttributeValue
stickPath
        MarkupM ()
S.circle
          forall h. Attributable h => h -> Attribute -> h
! (AttributeValue -> Attribute
cx (AttributeValue -> Attribute) -> Float -> Attribute
.: Float
0)
          forall h. Attributable h => h -> Attribute -> h
! (AttributeValue -> Attribute
cy (AttributeValue -> Attribute) -> Float -> Attribute
.: Float
0.15)
          forall h. Attributable h => h -> Attribute -> h
! (AttributeValue -> Attribute
r  (AttributeValue -> Attribute) -> Float -> Attribute
.: Float
w)
  where
    w :: Float
w  = Float
0.1
    ap1 :: Float
ap1 = Float
0.42
    ap2 :: Float
ap2 = Float
ap1 forall a. Num a => a -> a -> a
+ Float
w
    lm1 :: Float
lm1 = (forall a. Floating a => a -> a
sqrt Float
3) forall a. Num a => a -> a -> a
* Float
ap1
    lm2 :: Float
lm2 = (forall a. Floating a => a -> a
sqrt Float
3) forall a. Num a => a -> a -> a
* Float
ap2
    y1 :: Float
y1 = -Float
0.3
    y2 :: Float
y2 = -Float
0.05
    triangleDirs :: AttributeValue
triangleDirs = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
      forall a. Show a => a -> a -> Path
m    Float
0    (-Float
2forall a. Num a => a -> a -> a
*Float
ap2)
      forall a. Show a => a -> a -> Path
l  (-Float
lm2) (   Float
ap2)
      forall a. Show a => a -> a -> Path
l  ( Float
lm2) (   Float
ap2)
      Path
S.z
      forall a. Show a => a -> a -> Path
m    Float
0    (-Float
2forall a. Num a => a -> a -> a
*Float
ap1)
      forall a. Show a => a -> a -> Path
l  (-Float
lm1) (   Float
ap1)
      forall a. Show a => a -> a -> Path
l  ( Float
lm1) (   Float
ap1)
      Path
S.z
    stickPath :: AttributeValue
stickPath = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
      forall a. Show a => a -> a -> Path
m   (-Float
w)    Float
y1
      forall a. Show a => a -> a -> Path
l   (-Float
wforall a. Fractional a => a -> a -> a
/Float
2)  Float
y2
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa  ( Float
wforall a. Fractional a => a -> a -> a
/Float
2) (Float
wforall a. Fractional a => a -> a -> a
/Float
2)  Float
0  Bool
True  Bool
False (Float
wforall a. Fractional a => a -> a -> a
/Float
2) Float
y2
      forall a. Show a => a -> a -> Path
l   ( Float
w)    Float
y1
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa    Float
w     Float
w     Float
0  Bool
True  Bool
False (-Float
w)  Float
y1
      Path
S.z
      


{- |
![fill style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/computer/minimize_fill.svg)

![fill and stroke](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/computer/minimize_full.svg)

![stroke style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/computer/minimize_strk.svg)
-}
minimize :: Svg
minimize :: MarkupM ()
minimize =
  MarkupM ()
S.path
    forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.d AttributeValue
dirs
  where
    w :: Double
w = Double
0.1
    k :: Double
k = Double
0.7
    dirs :: AttributeValue
dirs = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
      forall a. Show a => a -> a -> Path
m   (-Double
k)  (-Double
w)
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa  ( Double
w)  ( Double
w)  Double
0  Bool
True  Bool
False  (-Double
k) ( Double
w)
      forall a. Show a => a -> a -> Path
l   ( Double
k)  ( Double
w)
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa  ( Double
w)  ( Double
w)  Double
0  Bool
True  Bool
False  ( Double
k) (-Double
w)
      Path
S.z



{- |
![fill style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/computer/maximize_fill.svg)

![fill and stroke](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/computer/maximize_full.svg)

![stroke style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/computer/maximize_strk.svg)
-}
maximize :: Svg
maximize :: MarkupM ()
maximize =
  MarkupM () -> MarkupM ()
S.g forall a b. (a -> b) -> a -> b
$ do
    MarkupM ()
S.path
      forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.d AttributeValue
dirs1
      forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.transform (forall a. Show a => a -> a -> AttributeValue
translate (Double
k forall a. Num a => a -> a -> a
- Double
0.15) (Double
0.15 forall a. Num a => a -> a -> a
- Double
k))
      forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.stroke AttributeValue
"none"
      forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.opacity AttributeValue
"0.5"
    MarkupM ()
S.path
      forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.d AttributeValue
dirs2
      forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.transform (forall a. Show a => a -> a -> AttributeValue
translate (  - Double
0.15)  Double
0.15)
      forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.fill AttributeValue
"none"
    MarkupM ()
S.path
      forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.d AttributeValue
dirs1
      forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.transform (forall a. Show a => a -> a -> AttributeValue
translate (-Double
0.1 ) Double
0.1)
  where
    w :: Double
w = Double
1.4
    k :: Double
k = Double
0.25
    dirs1 :: AttributeValue
dirs1 = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
      forall a. Show a => a -> a -> Path
m   (-Double
0.5 forall a. Num a => a -> a -> a
* Double
w)  (-Double
0.5 forall a. Num a => a -> a -> a
* Double
w)
      forall a. Show a => a -> a -> Path
l   ( Double
0.5 forall a. Num a => a -> a -> a
* Double
w)  (-Double
0.5 forall a. Num a => a -> a -> a
* Double
w)
      forall a. Show a => a -> a -> Path
l   ( Double
0.5 forall a. Num a => a -> a -> a
* Double
w)  ( Double
0.5 forall a. Num a => a -> a -> a
* Double
w)
      forall a. Show a => a -> a -> Path
l   (-Double
0.5 forall a. Num a => a -> a -> a
* Double
w)  ( Double
0.5 forall a. Num a => a -> a -> a
* Double
w)
      Path
S.z
    dirs2 :: AttributeValue
dirs2 = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
      forall a. Show a => a -> a -> Path
m   (-Double
0.5forall a. Num a => a -> a -> a
*Double
w forall a. Num a => a -> a -> a
+ Double
k)  (-Double
0.5forall a. Num a => a -> a -> a
*Double
w forall a. Num a => a -> a -> a
- Double
k)
      forall a. Show a => a -> a -> Path
l   ( Double
0.5forall a. Num a => a -> a -> a
*Double
w forall a. Num a => a -> a -> a
+ Double
k)  (-Double
0.5forall a. Num a => a -> a -> a
*Double
w forall a. Num a => a -> a -> a
- Double
k)
      forall a. Show a => a -> a -> Path
l   ( Double
0.5forall a. Num a => a -> a -> a
*Double
w forall a. Num a => a -> a -> a
+ Double
k)  ( Double
0.5forall a. Num a => a -> a -> a
*Double
w forall a. Num a => a -> a -> a
- Double
k)



{- |
![fill style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/computer/menuDots_fill.svg)

![fill and stroke](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/computer/menuDots_full.svg)

![stroke style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/computer/menuDots_strk.svg)
-}
menuDots :: Svg
menuDots :: MarkupM ()
menuDots =
    MarkupM () -> MarkupM ()
S.g forall a b. (a -> b) -> a -> b
$ do
        Float -> MarkupM ()
dot (-Float
0.7)
        Float -> MarkupM ()
dot ( Float
0  )
        Float -> MarkupM ()
dot ( Float
0.7)
  where
    dot :: Float -> MarkupM ()
dot Float
y =
      MarkupM ()
circle 
        forall h. Attributable h => h -> Attribute -> h
! (AttributeValue -> Attribute
A.cy (AttributeValue -> Attribute) -> Float -> Attribute
.: Float
y)
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.cx AttributeValue
"0"
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.r  AttributeValue
"0.2"



{- |
![fill style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/computer/menuLines_fill.svg)

![fill and stroke](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/computer/menuLines_full.svg)

![stroke style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/computer/menuLines_strk.svg)
-}
menuLines :: Svg
menuLines :: MarkupM ()
menuLines =
    MarkupM () -> MarkupM ()
S.g forall a b. (a -> b) -> a -> b
$ do
      MarkupM ()
S.path forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.d (Double -> AttributeValue
line (-Double
0.5))
      MarkupM ()
S.path forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.d (Double -> AttributeValue
line ( Double
0  ))
      MarkupM ()
S.path forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.d (Double -> AttributeValue
line ( Double
0.5))
  where
    kx :: Double
kx = Double
0.7
    r :: Double
r  = Double
0.12
    line :: Double -> AttributeValue
line Double
y = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
      forall a. Show a => a -> a -> Path
m  (-Double
kx)  (Double
y forall a. Num a => a -> a -> a
- Double
r)
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa   Double
r   Double
r   Double
0   Bool
True  Bool
False (-Double
kx) (Double
y forall a. Num a => a -> a -> a
+ Double
r)
      forall a. Show a => a -> a -> Path
l  ( Double
kx)  (Double
y forall a. Num a => a -> a -> a
+ Double
r)
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa   Double
r   Double
r   Double
0   Bool
True  Bool
False ( Double
kx) (Double
y forall a. Num a => a -> a -> a
- Double
r)
      Path
S.z



{- |
![fill style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/computer/powerButton_fill.svg)

![fill and stroke](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/computer/powerButton_full.svg)

![stroke style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/computer/powerButton_strk.svg)
-}
powerButton :: S.Svg
powerButton :: MarkupM ()
powerButton =
  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
innerCircle
      forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.transform (forall a. Show a => a -> a -> AttributeValue
translate Double
0 Double
0.1)
    MarkupM ()
S.path
      forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
d AttributeValue
littleStickPath
      forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.transform (forall a. Show a => a -> a -> AttributeValue
translate Double
0 (-Double
0.42))
  where
    w :: Double
w  = Double
0.08
    r1 :: Double
r1 = Double
0.7
    r2 :: Double
r2 = Double
r1 forall a. Num a => a -> a -> a
+ Double
2forall a. Num a => a -> a -> a
*Double
w
    α :: Double
α  = forall a. Floating a => a
pi forall a. Fractional a => a -> a -> a
/ Double
8
    y1 :: Double
y1 = Double
0.4
    innerCircle :: AttributeValue
innerCircle =
      Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
        forall a. Show a => a -> a -> Path
m   (Double
r1 forall a. Num a => a -> a -> a
* forall a. Floating a => a -> a
sin Double
α)  (-Double
r1 forall a. Num a => a -> a -> a
* forall a. Floating a => a -> a
cos Double
α)
        forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa   Double
w   Double
w   Double
0   Bool
True  Bool
True  ( Double
r2 forall a. Num a => a -> a -> a
* forall a. Floating a => a -> a
sin Double
α) (-Double
r2 forall a. Num a => a -> a -> a
* forall a. Floating a => a -> a
cos Double
α)
        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 forall a. Num a => a -> a -> a
* forall a. Floating a => a -> a
sin Double
α) (-Double
r2 forall a. Num a => a -> a -> a
* forall a. Floating a => a -> a
cos Double
α)
        forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa   Double
w   Double
w   Double
0   Bool
True  Bool
True  (-Double
r1 forall a. Num a => a -> a -> a
* forall a. Floating a => a -> a
sin Double
α) (-Double
r1 forall a. Num a => a -> a -> a
* forall a. Floating a => a -> a
cos Double
α)
        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 forall a. Num a => a -> a -> a
* forall a. Floating a => a -> a
sin Double
α) (-Double
r1 forall a. Num a => a -> a -> a
* forall a. Floating a => a -> a
cos Double
α)
        Path
S.z
    littleStickPath :: AttributeValue
littleStickPath =
      Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
        forall a. Show a => a -> a -> Path
m     Double
w  (-Double
y1)
        forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa    Double
w    Double
w   Double
0   Bool
True  Bool
False (-Double
w) (-Double
y1)
        forall a. Show a => a -> a -> Path
l   (-Double
w) ( Double
y1)
        forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa    Double
w    Double
w   Double
0   Bool
True  Bool
False ( Double
w) ( Double
y1)
        Path
S.z
      
    
  
{- |
![fill style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/computer/diskette_fill.svg)

![fill and stroke](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/computer/diskette_full.svg)

![stroke style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/computer/diskette_strk.svg)
-}
diskette :: Svg
diskette :: MarkupM ()
diskette =
    MarkupM ()
S.path
      forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.d AttributeValue
shell
      forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.fillRule AttributeValue
"evenodd"
  where
    k0 :: Double
k0 = Double
0.9
    r0 :: Double
r0 = Double
0.06
    r1 :: Double
r1 = Double
3forall a. Num a => a -> a -> a
*Double
r0
    (Float
px,Float
py) = (Float
0    ,-Float
0.55)
    (Float
pw,Float
ph) = (Float
0.5  , Float
0.29)
    (Float
qx,Float
qy) = (Float
0    , Float
0.35)
    (Float
qw,Float
qh) = (Float
0.65 , Float
0.45)
    (Float
tx,Float
ty) = (Float
0.2  ,-Float
0.54)
    (Float
tw,Float
th) = (Float
0.1  , Float
0.23)
    rq :: Float
rq = Float
0.05
    shell :: AttributeValue
shell = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
      forall a. Show a => a -> a -> Path
m       Double
0     (-Double
k0     )
      forall a. Show a => a -> a -> Path
l  (-Double
k0 forall a. Num a => a -> a -> a
+ Double
r0) (-Double
k0     )
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa   Double
r0   Double
r0   Double
0   Bool
False  Bool
False  (-Double
k0     ) (-Double
k0 forall a. Num a => a -> a -> a
+ Double
r0)
      forall a. Show a => a -> a -> Path
l  (-Double
k0     ) ( Double
k0 forall a. Num a => a -> a -> a
- Double
r0)
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa   Double
r0   Double
r0   Double
0   Bool
False  Bool
False  (-Double
k0 forall a. Num a => a -> a -> a
+ Double
r0) ( Double
k0     )
      forall a. Show a => a -> a -> Path
l  ( Double
k0 forall a. Num a => a -> a -> a
- Double
r0) ( Double
k0     )
      forall a. Show a => a -> a -> a -> Bool -> Bool -> a -> a -> Path
aa   Double
r0   Double
r0   Double
0   Bool
False  Bool
False  ( Double
k0     ) ( Double
k0 forall a. Num a => a -> a -> a
- Double
r0)
      forall a. Show a => a -> a -> Path
l  ( Double
k0     ) (-Double
k0 forall a. Num a => a -> a -> a
+ Double
r1)
      forall a. Show a => a -> a -> Path
l  ( Double
k0 forall a. Num a => a -> a -> a
- Double
r1) (-Double
k0     )
      Path
S.z
      Float -> (Float, Float) -> (Float, Float) -> Path
rectangleWithRoundCorners Float
rq   (Float
qw,Float
qh) (Float
qx,Float
qy)
      Float -> (Float, Float) -> (Float, Float) -> Path
rectangleWithRoundCorners Float
rq   (Float
pw,Float
ph) (Float
px,Float
py)
      Float -> (Float, Float) -> (Float, Float) -> Path
rectangleWithRoundCorners Float
0.01 (Float
tw,Float
th) (Float
tx,Float
ty)



{- |
![fill style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/computer/save_fill.svg)

![fill and stroke](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/computer/save_full.svg)

![stroke style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/computer/save_strk.svg)
-}
save :: Svg
save :: MarkupM ()
save =
  MarkupM () -> MarkupM ()
S.g forall a b. (a -> b) -> a -> b
$ do
    MarkupM ()
diskette
    MarkupM ()
accept 
      forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.transform (forall a. Show a => a -> a -> AttributeValue
translate Double
0 Double
0.4 forall a. Semigroup a => a -> a -> a
<> forall a. Show a => a -> a -> AttributeValue
S.scale Double
0.5 Double
0.5)



{- |
![fill style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/computer/dustBin_fill.svg)

![fill and stroke](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/computer/dustBin_full.svg)

![stroke style](https://raw.githubusercontent.com/RamiroPastor/SvgIcons/main/svg/icons/computer/dustBin_strk.svg)
-}
dustBin :: Svg
dustBin :: MarkupM ()
dustBin =
    MarkupM () -> MarkupM ()
S.g forall a b. (a -> b) -> a -> b
$ do
      MarkupM ()
S.path
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.d AttributeValue
binDirs
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.strokeLinecap AttributeValue
"round"
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.strokeLinejoin AttributeValue
"round"
      MarkupM ()
S.path
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.d AttributeValue
handleDirs
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.strokeLinejoin AttributeValue
"round"
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.fill AttributeValue
"none"
      MarkupM ()
S.path
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.d AttributeValue
linesDirs
        forall h. Attributable h => h -> Attribute -> h
! AttributeValue -> Attribute
A.strokeLinecap AttributeValue
"round"
  where
    x0 :: Double
x0 = Double
x1 forall a. Num a => a -> a -> a
- Double
0.15
    x8 :: Double
x8 = Double
x7 forall a. Num a => a -> a -> a
+ Double
0.15
    x1 :: Double
x1 = (Double
y0 forall a. Num a => a -> a -> a
- Double
y4) forall a. Num a => a -> a -> a
* Double
0.5 forall a. Num a => a -> a -> a
* Double
0.618 
    x7 :: Double
x7 = -Double
x1
    x2 :: Double
x2 = Double
x1 forall a. Num a => a -> a -> a
+ Double
1 forall a. Num a => a -> a -> a
* (Double
x7 forall a. Num a => a -> a -> a
- Double
x1) forall a. Fractional a => a -> a -> a
/ Double
4
    x4 :: Double
x4 = Double
x1 forall a. Num a => a -> a -> a
+ Double
2 forall a. Num a => a -> a -> a
* (Double
x7 forall a. Num a => a -> a -> a
- Double
x1) forall a. Fractional a => a -> a -> a
/ Double
4
    x6 :: Double
x6 = Double
x1 forall a. Num a => a -> a -> a
+ Double
3 forall a. Num a => a -> a -> a
* (Double
x7 forall a. Num a => a -> a -> a
- Double
x1) forall a. Fractional a => a -> a -> a
/ Double
4
    x3 :: Double
x3 = Double
x4 forall a. Num a => a -> a -> a
- (Double
x7 forall a. Num a => a -> a -> a
- Double
x1) forall a. Fractional a => a -> a -> a
/ Double
8
    x5 :: Double
x5 = Double
x4 forall a. Num a => a -> a -> a
+ (Double
x7 forall a. Num a => a -> a -> a
- Double
x1) forall a. Fractional a => a -> a -> a
/ Double
8
    y0 :: Double
y0 = -Double
0.9
    y1 :: Double
y1 = -Double
0.7
    y2 :: Double
y2 = -Double
0.5
    y3 :: Double
y3 =  Double
0.6
    y4 :: Double
y4 =  Double
0.85
    binDirs :: AttributeValue
binDirs = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
      forall a. Show a => a -> a -> Path
m   Double
x0  Double
y1
      forall a. Show a => a -> a -> Path
l   Double
x1  Double
y1
      forall a. Show a => a -> a -> Path
l   Double
x1  Double
y4
      forall a. Show a => a -> a -> Path
l   Double
x7  Double
y4
      forall a. Show a => a -> a -> Path
l   Double
x7  Double
y1
      forall a. Show a => a -> a -> Path
l   Double
x8  Double
y1
      Path
S.z
    handleDirs :: AttributeValue
handleDirs = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
      forall a. Show a => a -> a -> Path
m   Double
x3  Double
y1
      forall a. Show a => a -> a -> Path
l   Double
x3  Double
y0
      forall a. Show a => a -> a -> Path
l   Double
x5  Double
y0
      forall a. Show a => a -> a -> Path
l   Double
x5  Double
y1
    linesDirs :: AttributeValue
linesDirs = Path -> AttributeValue
mkPath forall a b. (a -> b) -> a -> b
$ do
      forall a. Show a => a -> a -> Path
m   Double
x2  Double
y2
      forall a. Show a => a -> a -> Path
l   Double
x2  Double
y3
      forall a. Show a => a -> a -> Path
m   Double
x4  Double
y2
      forall a. Show a => a -> a -> Path
l   Double
x4  Double
y3
      forall a. Show a => a -> a -> Path
m   Double
x6  Double
y2
      forall a. Show a => a -> a -> Path
l   Double
x6  Double
y3