{-# LANGUAGE UndecidableInstances #-}
{-# OPTIONS_GHC -Wno-missing-role-annotations #-}

module Dashi.Style.Uchu where

import Clay qualified
import Dashi.Style.Colour ()
import Dashi.Style.Colour qualified as Colour
import Dashi.Style.Tokens
import Dashi.Style.Util (colorToken')
import Dashi.Util (breakAll, uncapitalise)
import Data.Char (isDigit, isUpper)
import Data.Fixed (Fixed, HasResolution, Micro, showFixed)
import Data.String (IsString (fromString))
import Graphics.Color.Space
import Graphics.Color.Space.OKLAB.LCH (OKLCH)
import Graphics.Color.Uchu hiding (Uchu, uchu)
import Graphics.Color.Uchu.Extended qualified as Extended
import Graphics.Color.Uchu.Extended.OKLCH qualified as Extended
import Graphics.Color.Uchu.Simple qualified as Simple
import Graphics.Color.Uchu.Simple.OKLCH qualified as Simple
import Miso.String (fromMisoString, toMisoString)
import Miso.String qualified as MisoString
import Prelude

data Uchu
    = Gray1
    | Gray2
    | Gray3
    | Gray4
    | Gray5
    | Gray6
    | Gray7
    | Gray8
    | Gray9
    | Gray
    | LightGray
    | DarkGray
    | Red1
    | Red2
    | Red3
    | Red4
    | Red5
    | Red6
    | Red7
    | Red8
    | Red9
    | Red
    | LightRed
    | DarkRed
    | Pink1
    | Pink2
    | Pink3
    | Pink4
    | Pink5
    | Pink6
    | Pink7
    | Pink8
    | Pink9
    | Pink
    | LightPink
    | DarkPink
    | Purple1
    | Purple2
    | Purple3
    | Purple4
    | Purple5
    | Purple6
    | Purple7
    | Purple8
    | Purple9
    | Purple
    | LightPurple
    | DarkPurple
    | Blue1
    | Blue2
    | Blue3
    | Blue4
    | Blue5
    | Blue6
    | Blue7
    | Blue8
    | Blue9
    | Blue
    | LightBlue
    | DarkBlue
    | Green1
    | Green2
    | Green3
    | Green4
    | Green5
    | Green6
    | Green7
    | Green8
    | Green9
    | Green
    | LightGreen
    | DarkGreen
    | Yellow1
    | Yellow2
    | Yellow3
    | Yellow4
    | Yellow5
    | Yellow6
    | Yellow7
    | Yellow8
    | Yellow9
    | Yellow
    | LightYellow
    | DarkYellow
    | Orange1
    | Orange2
    | Orange3
    | Orange4
    | Orange5
    | Orange6
    | Orange7
    | Orange8
    | Orange9
    | Orange
    | LightOrange
    | DarkOrange
    | Yin1
    | Yin2
    | Yin3
    | Yin4
    | Yin5
    | Yin6
    | Yin7
    | Yin8
    | Yin9
    | Yin
    | LightYin
    | Yang
    deriving stock (Uchu -> Uchu -> Bool
(Uchu -> Uchu -> Bool) -> (Uchu -> Uchu -> Bool) -> Eq Uchu
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Uchu -> Uchu -> Bool
== :: Uchu -> Uchu -> Bool
$c/= :: Uchu -> Uchu -> Bool
/= :: Uchu -> Uchu -> Bool
Eq, Uchu
Uchu -> Uchu -> Bounded Uchu
forall a. a -> a -> Bounded a
$cminBound :: Uchu
minBound :: Uchu
$cmaxBound :: Uchu
maxBound :: Uchu
Bounded, Int -> Uchu
Uchu -> Int
Uchu -> [Uchu]
Uchu -> Uchu
Uchu -> Uchu -> [Uchu]
Uchu -> Uchu -> Uchu -> [Uchu]
(Uchu -> Uchu)
-> (Uchu -> Uchu)
-> (Int -> Uchu)
-> (Uchu -> Int)
-> (Uchu -> [Uchu])
-> (Uchu -> Uchu -> [Uchu])
-> (Uchu -> Uchu -> [Uchu])
-> (Uchu -> Uchu -> Uchu -> [Uchu])
-> Enum Uchu
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
$csucc :: Uchu -> Uchu
succ :: Uchu -> Uchu
$cpred :: Uchu -> Uchu
pred :: Uchu -> Uchu
$ctoEnum :: Int -> Uchu
toEnum :: Int -> Uchu
$cfromEnum :: Uchu -> Int
fromEnum :: Uchu -> Int
$cenumFrom :: Uchu -> [Uchu]
enumFrom :: Uchu -> [Uchu]
$cenumFromThen :: Uchu -> Uchu -> [Uchu]
enumFromThen :: Uchu -> Uchu -> [Uchu]
$cenumFromTo :: Uchu -> Uchu -> [Uchu]
enumFromTo :: Uchu -> Uchu -> [Uchu]
$cenumFromThenTo :: Uchu -> Uchu -> Uchu -> [Uchu]
enumFromThenTo :: Uchu -> Uchu -> Uchu -> [Uchu]
Enum, Int -> Uchu -> [Char] -> [Char]
[Uchu] -> [Char] -> [Char]
Uchu -> [Char]
(Int -> Uchu -> [Char] -> [Char])
-> (Uchu -> [Char]) -> ([Uchu] -> [Char] -> [Char]) -> Show Uchu
forall a.
(Int -> a -> [Char] -> [Char])
-> (a -> [Char]) -> ([a] -> [Char] -> [Char]) -> Show a
$cshowsPrec :: Int -> Uchu -> [Char] -> [Char]
showsPrec :: Int -> Uchu -> [Char] -> [Char]
$cshow :: Uchu -> [Char]
show :: Uchu -> [Char]
$cshowList :: [Uchu] -> [Char] -> [Char]
showList :: [Uchu] -> [Char] -> [Char]
Show)

uchu :: (Fractional e) => Uchu -> Color OKLCH e
uchu :: forall e. Fractional e => Uchu -> Color OKLCH e
uchu Uchu
Gray1 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_1 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.gray
uchu Uchu
Gray2 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_2 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.gray
uchu Uchu
Gray3 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_3 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.gray
uchu Uchu
Gray4 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_4 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.gray
uchu Uchu
Gray5 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_5 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.gray
uchu Uchu
Gray6 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_6 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.gray
uchu Uchu
Gray7 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_7 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.gray
uchu Uchu
Gray8 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_8 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.gray
uchu Uchu
Gray9 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_9 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.gray
uchu Uchu
Gray = Simple OKLCH e -> Color OKLCH e
forall cs e. Simple cs e -> Color cs e
base Palette Simple OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Simple.uchu.gray
uchu Uchu
LightGray = Simple OKLCH e -> Color OKLCH e
forall cs e. Simple cs e -> Color cs e
light Palette Simple OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Simple.uchu.gray
uchu Uchu
DarkGray = Simple OKLCH e -> Color OKLCH e
forall cs e. Simple cs e -> Color cs e
dark Palette Simple OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Simple.uchu.gray
uchu Uchu
Red1 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_1 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.red
uchu Uchu
Red2 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_2 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.red
uchu Uchu
Red3 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_3 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.red
uchu Uchu
Red4 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_4 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.red
uchu Uchu
Red5 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_5 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.red
uchu Uchu
Red6 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_6 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.red
uchu Uchu
Red7 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_7 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.red
uchu Uchu
Red8 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_8 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.red
uchu Uchu
Red9 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_9 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.red
uchu Uchu
Red = Simple OKLCH e -> Color OKLCH e
forall cs e. Simple cs e -> Color cs e
base Palette Simple OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Simple.uchu.red
uchu Uchu
LightRed = Simple OKLCH e -> Color OKLCH e
forall cs e. Simple cs e -> Color cs e
light Palette Simple OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Simple.uchu.red
uchu Uchu
DarkRed = Simple OKLCH e -> Color OKLCH e
forall cs e. Simple cs e -> Color cs e
dark Palette Simple OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Simple.uchu.red
uchu Uchu
Pink1 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_1 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.pink
uchu Uchu
Pink2 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_2 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.pink
uchu Uchu
Pink3 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_3 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.pink
uchu Uchu
Pink4 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_4 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.pink
uchu Uchu
Pink5 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_5 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.pink
uchu Uchu
Pink6 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_6 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.pink
uchu Uchu
Pink7 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_7 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.pink
uchu Uchu
Pink8 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_8 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.pink
uchu Uchu
Pink9 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_9 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.pink
uchu Uchu
Pink = Simple OKLCH e -> Color OKLCH e
forall cs e. Simple cs e -> Color cs e
base Palette Simple OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Simple.uchu.pink
uchu Uchu
LightPink = Simple OKLCH e -> Color OKLCH e
forall cs e. Simple cs e -> Color cs e
light Palette Simple OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Simple.uchu.pink
uchu Uchu
DarkPink = Simple OKLCH e -> Color OKLCH e
forall cs e. Simple cs e -> Color cs e
dark Palette Simple OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Simple.uchu.pink
uchu Uchu
Purple1 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_1 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.purple
uchu Uchu
Purple2 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_2 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.purple
uchu Uchu
Purple3 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_3 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.purple
uchu Uchu
Purple4 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_4 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.purple
uchu Uchu
Purple5 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_5 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.purple
uchu Uchu
Purple6 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_6 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.purple
uchu Uchu
Purple7 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_7 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.purple
uchu Uchu
Purple8 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_8 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.purple
uchu Uchu
Purple9 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_9 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.purple
uchu Uchu
Purple = Simple OKLCH e -> Color OKLCH e
forall cs e. Simple cs e -> Color cs e
base Palette Simple OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Simple.uchu.purple
uchu Uchu
LightPurple = Simple OKLCH e -> Color OKLCH e
forall cs e. Simple cs e -> Color cs e
light Palette Simple OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Simple.uchu.purple
uchu Uchu
DarkPurple = Simple OKLCH e -> Color OKLCH e
forall cs e. Simple cs e -> Color cs e
dark Palette Simple OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Simple.uchu.purple
uchu Uchu
Blue1 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_1 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.blue
uchu Uchu
Blue2 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_2 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.blue
uchu Uchu
Blue3 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_3 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.blue
uchu Uchu
Blue4 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_4 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.blue
uchu Uchu
Blue5 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_5 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.blue
uchu Uchu
Blue6 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_6 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.blue
uchu Uchu
Blue7 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_7 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.blue
uchu Uchu
Blue8 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_8 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.blue
uchu Uchu
Blue9 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_9 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.blue
uchu Uchu
Blue = Simple OKLCH e -> Color OKLCH e
forall cs e. Simple cs e -> Color cs e
base Palette Simple OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Simple.uchu.blue
uchu Uchu
LightBlue = Simple OKLCH e -> Color OKLCH e
forall cs e. Simple cs e -> Color cs e
light Palette Simple OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Simple.uchu.blue
uchu Uchu
DarkBlue = Simple OKLCH e -> Color OKLCH e
forall cs e. Simple cs e -> Color cs e
dark Palette Simple OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Simple.uchu.blue
uchu Uchu
Green1 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_1 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.green
uchu Uchu
Green2 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_2 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.green
uchu Uchu
Green3 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_3 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.green
uchu Uchu
Green4 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_4 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.green
uchu Uchu
Green5 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_5 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.green
uchu Uchu
Green6 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_6 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.green
uchu Uchu
Green7 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_7 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.green
uchu Uchu
Green8 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_8 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.green
uchu Uchu
Green9 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_9 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.green
uchu Uchu
Green = Simple OKLCH e -> Color OKLCH e
forall cs e. Simple cs e -> Color cs e
base Palette Simple OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Simple.uchu.green
uchu Uchu
LightGreen = Simple OKLCH e -> Color OKLCH e
forall cs e. Simple cs e -> Color cs e
light Palette Simple OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Simple.uchu.green
uchu Uchu
DarkGreen = Simple OKLCH e -> Color OKLCH e
forall cs e. Simple cs e -> Color cs e
dark Palette Simple OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Simple.uchu.green
uchu Uchu
Yellow1 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_1 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.yellow
uchu Uchu
Yellow2 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_2 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.yellow
uchu Uchu
Yellow3 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_3 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.yellow
uchu Uchu
Yellow4 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_4 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.yellow
uchu Uchu
Yellow5 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_5 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.yellow
uchu Uchu
Yellow6 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_6 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.yellow
uchu Uchu
Yellow7 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_7 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.yellow
uchu Uchu
Yellow8 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_8 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.yellow
uchu Uchu
Yellow9 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_9 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.yellow
uchu Uchu
Yellow = Simple OKLCH e -> Color OKLCH e
forall cs e. Simple cs e -> Color cs e
base Palette Simple OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Simple.uchu.yellow
uchu Uchu
LightYellow = Simple OKLCH e -> Color OKLCH e
forall cs e. Simple cs e -> Color cs e
light Palette Simple OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Simple.uchu.yellow
uchu Uchu
DarkYellow = Simple OKLCH e -> Color OKLCH e
forall cs e. Simple cs e -> Color cs e
dark Palette Simple OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Simple.uchu.yellow
uchu Uchu
Orange1 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_1 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.orange
uchu Uchu
Orange2 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_2 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.orange
uchu Uchu
Orange3 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_3 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.orange
uchu Uchu
Orange4 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_4 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.orange
uchu Uchu
Orange5 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_5 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.orange
uchu Uchu
Orange6 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_6 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.orange
uchu Uchu
Orange7 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_7 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.orange
uchu Uchu
Orange8 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_8 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.orange
uchu Uchu
Orange9 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_9 Palette Extended OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Extended.uchu.orange
uchu Uchu
Orange = Simple OKLCH e -> Color OKLCH e
forall cs e. Simple cs e -> Color cs e
base Palette Simple OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Simple.uchu.orange
uchu Uchu
LightOrange = Simple OKLCH e -> Color OKLCH e
forall cs e. Simple cs e -> Color cs e
light Palette Simple OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Simple.uchu.orange
uchu Uchu
DarkOrange = Simple OKLCH e -> Color OKLCH e
forall cs e. Simple cs e -> Color cs e
dark Palette Simple OKLCH e
forall (c :: * -> * -> *) cs e. Uchu c cs e => Palette c cs e
Simple.uchu.orange
uchu Uchu
Yin1 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_1 Extended OKLCH e
forall num. Fractional num => Extended OKLCH num
Extended.yin
uchu Uchu
Yin2 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_2 Extended OKLCH e
forall num. Fractional num => Extended OKLCH num
Extended.yin
uchu Uchu
Yin3 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_3 Extended OKLCH e
forall num. Fractional num => Extended OKLCH num
Extended.yin
uchu Uchu
Yin4 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_4 Extended OKLCH e
forall num. Fractional num => Extended OKLCH num
Extended.yin
uchu Uchu
Yin5 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_5 Extended OKLCH e
forall num. Fractional num => Extended OKLCH num
Extended.yin
uchu Uchu
Yin6 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_6 Extended OKLCH e
forall num. Fractional num => Extended OKLCH num
Extended.yin
uchu Uchu
Yin7 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_7 Extended OKLCH e
forall num. Fractional num => Extended OKLCH num
Extended.yin
uchu Uchu
Yin8 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_8 Extended OKLCH e
forall num. Fractional num => Extended OKLCH num
Extended.yin
uchu Uchu
Yin9 = Extended OKLCH e -> Color OKLCH e
forall cs e. Extended cs e -> Color cs e
_9 Extended OKLCH e
forall num. Fractional num => Extended OKLCH num
Extended.yin
uchu Uchu
Yin = Color OKLCH e
forall num. Fractional num => Color OKLCH num
Simple.yin
uchu Uchu
LightYin = Color OKLCH e
forall num. Fractional num => Color OKLCH num
Simple.lightYin
uchu Uchu
Yang = Color OKLCH e
forall num. Fractional num => Color OKLCH num
Simple.yang

instance Token Uchu where
    tokenName :: forall s. (IsString s, Semigroup s) => Uchu -> s
tokenName =
        [Char] -> s
forall a. IsString a => [Char] -> a
fromString
            ([Char] -> s) -> (Uchu -> [Char]) -> Uchu -> s
forall b c a. (b -> c) -> (a -> b) -> a -> c
. MisoString -> [Char]
forall a. FromMisoString a => MisoString -> a
fromMisoString
            (MisoString -> [Char]) -> (Uchu -> MisoString) -> Uchu -> [Char]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (MisoString
"--uchu-" MisoString -> MisoString -> MisoString
forall a. Semigroup a => a -> a -> a
<>)
            (MisoString -> MisoString)
-> (Uchu -> MisoString) -> Uchu -> MisoString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. MisoString -> [MisoString] -> MisoString
MisoString.intercalate MisoString
"-"
            ([MisoString] -> MisoString)
-> (Uchu -> [MisoString]) -> Uchu -> MisoString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (MisoString -> MisoString) -> [MisoString] -> [MisoString]
forall a b. (a -> b) -> [a] -> [b]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap MisoString -> MisoString
forall s. Cons s s Char Char => s -> s
uncapitalise
            ([MisoString] -> [MisoString])
-> (Uchu -> [MisoString]) -> Uchu -> [MisoString]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Char -> Bool) -> MisoString -> [MisoString]
breakAll (\Char
c -> Char -> Bool
isUpper Char
c Bool -> Bool -> Bool
|| Char -> Bool
isDigit Char
c)
            (MisoString -> [MisoString])
-> (Uchu -> MisoString) -> Uchu -> [MisoString]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Char] -> MisoString
forall str. ToMisoString str => str -> MisoString
toMisoString
            ([Char] -> MisoString) -> (Uchu -> [Char]) -> Uchu -> MisoString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Uchu -> [Char]
forall a. Show a => a -> [Char]
show

instance ValueToken Uchu where
    type ValueType Uchu = Color OKLCH Micro
    tokenValue :: Uchu -> ValueType Uchu
tokenValue = Uchu -> Color OKLCH Micro
Uchu -> ValueType Uchu
forall e. Fractional e => Uchu -> Color OKLCH e
uchu

instance Clay.Val Uchu where
    value :: Uchu -> Clay.Value
    value :: Uchu -> Value
value = Color -> Value
forall a. Val a => a -> Value
Clay.value (Color -> Value) -> (Uchu -> Color) -> Uchu -> Value
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Uchu -> Color
forall t. Token t => t -> Color
colorToken'

data UchuAlpha a = UchuAlpha Uchu a

instance (Num a, Eq a) => Eq (UchuAlpha a) where
    (UchuAlpha Uchu
u1 a
a1) == :: UchuAlpha a -> UchuAlpha a -> Bool
== (UchuAlpha Uchu
u2 a
a2)
        | a
a1 a -> a -> Bool
forall a. Eq a => a -> a -> Bool
== a
0 Bool -> Bool -> Bool
&& a
a2 a -> a -> Bool
forall a. Eq a => a -> a -> Bool
== a
0 = Bool
True
        | Bool
otherwise = Uchu
u1 Uchu -> Uchu -> Bool
forall a. Eq a => a -> a -> Bool
== Uchu
u2 Bool -> Bool -> Bool
&& a
a1 a -> a -> Bool
forall a. Eq a => a -> a -> Bool
== a
a2

uchuAlpha :: (Fractional e) => UchuAlpha e -> Color (Alpha OKLCH) e
uchuAlpha :: forall e. Fractional e => UchuAlpha e -> Color (Alpha OKLCH) e
uchuAlpha (UchuAlpha Uchu
u e
a) = Color OKLCH e -> e -> Color (Alpha OKLCH) e
forall cs e. Color cs e -> e -> Color (Alpha cs) e
addAlpha (Uchu -> Color OKLCH e
forall e. Fractional e => Uchu -> Color OKLCH e
uchu Uchu
u) e
a

setAlpha :: a -> UchuAlpha a -> UchuAlpha a
setAlpha :: forall a. a -> UchuAlpha a -> UchuAlpha a
setAlpha a
a (UchuAlpha Uchu
u a
_) = Uchu -> a -> UchuAlpha a
forall a. Uchu -> a -> UchuAlpha a
UchuAlpha Uchu
u a
a

instance (HasResolution e) => Clay.Val (UchuAlpha (Fixed e)) where
    value :: UchuAlpha (Fixed e) -> Clay.Value
    value :: UchuAlpha (Fixed e) -> Value
value (UchuAlpha Uchu
u Fixed e
a)
        | Fixed e
a Fixed e -> Fixed e -> Bool
forall a. Eq a => a -> a -> Bool
== Fixed e
0 = Value
"transparent"
        | Fixed e
a Fixed e -> Fixed e -> Bool
forall a. Eq a => a -> a -> Bool
== Fixed e
1 = [Char] -> Value
forall a. IsString a => [Char] -> a
fromString [Char]
var
        | Bool
otherwise =
            [Char] -> [[Char]] -> Value
forall s. IsString s => [Char] -> [[Char]] -> s
Colour.fn'
                [Char]
"oklch"
                [ [Char]
"from"
                , [Char]
var
                , [Char]
"l"
                , [Char]
"c"
                , [Char]
"h"
                , [Char]
"/"
                , Bool -> Fixed e -> [Char]
forall {k} (a :: k). HasResolution a => Bool -> Fixed a -> [Char]
showFixed Bool
True Fixed e
a
                ]
      where
        var :: [Char]
var = [Char]
"var(" [Char] -> [Char] -> [Char]
forall a. Semigroup a => a -> a -> a
<> Uchu -> [Char]
forall s. (IsString s, Semigroup s) => Uchu -> s
forall t s. (Token t, IsString s, Semigroup s) => t -> s
tokenName Uchu
u [Char] -> [Char] -> [Char]
forall a. Semigroup a => a -> a -> a
<> [Char]
")"