{-# LANGUAGE OverloadedStrings #-}
module Miso.UI.Types
(
Variant (..)
, Size (..)
, Side (..)
, Align (..)
, variantSuffix
, sizeSuffix
, sideText
, alignText
) where
import Miso.String (MisoString)
data Variant
= Primary
| Secondary
| Destructive
| Outline
| Ghost
| Link
deriving (Int -> Variant -> ShowS
[Variant] -> ShowS
Variant -> String
(Int -> Variant -> ShowS)
-> (Variant -> String) -> ([Variant] -> ShowS) -> Show Variant
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> Variant -> ShowS
showsPrec :: Int -> Variant -> ShowS
$cshow :: Variant -> String
show :: Variant -> String
$cshowList :: [Variant] -> ShowS
showList :: [Variant] -> ShowS
Show, Variant -> Variant -> Bool
(Variant -> Variant -> Bool)
-> (Variant -> Variant -> Bool) -> Eq Variant
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Variant -> Variant -> Bool
== :: Variant -> Variant -> Bool
$c/= :: Variant -> Variant -> Bool
/= :: Variant -> Variant -> Bool
Eq)
data Size
= DefaultSize
| Small
| Large
deriving (Int -> Size -> ShowS
[Size] -> ShowS
Size -> String
(Int -> Size -> ShowS)
-> (Size -> String) -> ([Size] -> ShowS) -> Show Size
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> Size -> ShowS
showsPrec :: Int -> Size -> ShowS
$cshow :: Size -> String
show :: Size -> String
$cshowList :: [Size] -> ShowS
showList :: [Size] -> ShowS
Show, Size -> Size -> Bool
(Size -> Size -> Bool) -> (Size -> Size -> Bool) -> Eq Size
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Size -> Size -> Bool
== :: Size -> Size -> Bool
$c/= :: Size -> Size -> Bool
/= :: Size -> Size -> Bool
Eq)
data Side
= TopSide
| RightSide
| BottomSide
| LeftSide
deriving (Int -> Side -> ShowS
[Side] -> ShowS
Side -> String
(Int -> Side -> ShowS)
-> (Side -> String) -> ([Side] -> ShowS) -> Show Side
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> Side -> ShowS
showsPrec :: Int -> Side -> ShowS
$cshow :: Side -> String
show :: Side -> String
$cshowList :: [Side] -> ShowS
showList :: [Side] -> ShowS
Show, Side -> Side -> Bool
(Side -> Side -> Bool) -> (Side -> Side -> Bool) -> Eq Side
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Side -> Side -> Bool
== :: Side -> Side -> Bool
$c/= :: Side -> Side -> Bool
/= :: Side -> Side -> Bool
Eq)
data Align
= StartAlign
| CenterAlign
| EndAlign
deriving (Int -> Align -> ShowS
[Align] -> ShowS
Align -> String
(Int -> Align -> ShowS)
-> (Align -> String) -> ([Align] -> ShowS) -> Show Align
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> Align -> ShowS
showsPrec :: Int -> Align -> ShowS
$cshow :: Align -> String
show :: Align -> String
$cshowList :: [Align] -> ShowS
showList :: [Align] -> ShowS
Show, Align -> Align -> Bool
(Align -> Align -> Bool) -> (Align -> Align -> Bool) -> Eq Align
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Align -> Align -> Bool
== :: Align -> Align -> Bool
$c/= :: Align -> Align -> Bool
/= :: Align -> Align -> Bool
Eq)
variantSuffix :: Variant -> MisoString
variantSuffix :: Variant -> MisoString
variantSuffix = \Variant
v ->
case Variant
v of
Variant
Primary -> MisoString
"primary"
Variant
Secondary -> MisoString
"secondary"
Variant
Destructive -> MisoString
"destructive"
Variant
Outline -> MisoString
"outline"
Variant
Ghost -> MisoString
"ghost"
Variant
Link -> MisoString
"link"
sizeSuffix :: Size -> MisoString
sizeSuffix :: Size -> MisoString
sizeSuffix = \Size
s ->
case Size
s of
Size
DefaultSize -> MisoString
""
Size
Small -> MisoString
"sm"
Size
Large -> MisoString
"lg"
sideText :: Side -> MisoString
sideText :: Side -> MisoString
sideText = \Side
s ->
case Side
s of
Side
TopSide -> MisoString
"top"
Side
RightSide -> MisoString
"right"
Side
BottomSide -> MisoString
"bottom"
Side
LeftSide -> MisoString
"left"
alignText :: Align -> MisoString
alignText :: Align -> MisoString
alignText = \Align
a ->
case Align
a of
Align
StartAlign -> MisoString
"start"
Align
CenterAlign -> MisoString
"center"
Align
EndAlign -> MisoString
"end"