module Dashi.Style.Text where import Dashi.Prelude import Dashi.Style.Colour import Dashi.Style.Tokens (Appearance (..), Token (..), ValueToken (..)) import Dashi.Style.Uchu import Dashi.Style.Uchu qualified as Uchu newtype TextColour = TextColour Appearance deriving newtype (TextColour -> TextColour -> Bool (TextColour -> TextColour -> Bool) -> (TextColour -> TextColour -> Bool) -> Eq TextColour forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: TextColour -> TextColour -> Bool == :: TextColour -> TextColour -> Bool $c/= :: TextColour -> TextColour -> Bool /= :: TextColour -> TextColour -> Bool Eq, TextColour TextColour -> TextColour -> Bounded TextColour forall a. a -> a -> Bounded a $cminBound :: TextColour minBound :: TextColour $cmaxBound :: TextColour maxBound :: TextColour Bounded, Int -> TextColour TextColour -> Int TextColour -> [TextColour] TextColour -> TextColour TextColour -> TextColour -> [TextColour] TextColour -> TextColour -> TextColour -> [TextColour] (TextColour -> TextColour) -> (TextColour -> TextColour) -> (Int -> TextColour) -> (TextColour -> Int) -> (TextColour -> [TextColour]) -> (TextColour -> TextColour -> [TextColour]) -> (TextColour -> TextColour -> [TextColour]) -> (TextColour -> TextColour -> TextColour -> [TextColour]) -> Enum TextColour 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 :: TextColour -> TextColour succ :: TextColour -> TextColour $cpred :: TextColour -> TextColour pred :: TextColour -> TextColour $ctoEnum :: Int -> TextColour toEnum :: Int -> TextColour $cfromEnum :: TextColour -> Int fromEnum :: TextColour -> Int $cenumFrom :: TextColour -> [TextColour] enumFrom :: TextColour -> [TextColour] $cenumFromThen :: TextColour -> TextColour -> [TextColour] enumFromThen :: TextColour -> TextColour -> [TextColour] $cenumFromTo :: TextColour -> TextColour -> [TextColour] enumFromTo :: TextColour -> TextColour -> [TextColour] $cenumFromThenTo :: TextColour -> TextColour -> TextColour -> [TextColour] enumFromThenTo :: TextColour -> TextColour -> TextColour -> [TextColour] Enum) instance Token TextColour where tokenName :: forall s. (IsString s, Semigroup s) => TextColour -> s tokenName (TextColour Appearance appearance) = s "text-" s -> s -> s forall a. Semigroup a => a -> a -> a <> Appearance -> s forall s. (IsString s, Semigroup s) => Appearance -> s forall t s. (Token t, IsString s, Semigroup s) => t -> s tokenName Appearance appearance s -> s -> s forall a. Semigroup a => a -> a -> a <> s "-color" instance ValueToken TextColour where type ValueType TextColour = LightDark (UchuAlpha Micro) tokenValue :: TextColour -> ValueType TextColour tokenValue (TextColour Appearance Default) = (Uchu -> Micro -> UchuAlpha Micro) -> Micro -> Uchu -> UchuAlpha Micro forall a b c. (a -> b -> c) -> b -> a -> c flip Uchu -> Micro -> UchuAlpha Micro forall a. Uchu -> a -> UchuAlpha a UchuAlpha Micro 1 (Uchu -> UchuAlpha Micro) -> LightDark Uchu -> LightDark (UchuAlpha Micro) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Uchu -> Uchu -> LightDark Uchu forall c. c -> c -> LightDark c LightDark Uchu Yin Uchu Yang tokenValue (TextColour Appearance Subtle) = Micro -> UchuAlpha Micro -> UchuAlpha Micro forall a. a -> UchuAlpha a -> UchuAlpha a Uchu.setAlpha Micro 0.75 (UchuAlpha Micro -> UchuAlpha Micro) -> LightDark (UchuAlpha Micro) -> LightDark (UchuAlpha Micro) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> TextColour -> ValueType TextColour forall t. ValueToken t => t -> ValueType t tokenValue (Appearance -> TextColour TextColour Appearance Default) tokenValue (TextColour Appearance Primary) = (Uchu -> Micro -> UchuAlpha Micro) -> Micro -> Uchu -> UchuAlpha Micro forall a b c. (a -> b -> c) -> b -> a -> c flip Uchu -> Micro -> UchuAlpha Micro forall a. Uchu -> a -> UchuAlpha a UchuAlpha Micro 1 (Uchu -> UchuAlpha Micro) -> LightDark Uchu -> LightDark (UchuAlpha Micro) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Uchu -> LightDark Uchu forall c. c -> LightDark c sameLightDark Uchu Blue tokenValue (TextColour Appearance Success) = (Uchu -> Micro -> UchuAlpha Micro) -> Micro -> Uchu -> UchuAlpha Micro forall a b c. (a -> b -> c) -> b -> a -> c flip Uchu -> Micro -> UchuAlpha Micro forall a. Uchu -> a -> UchuAlpha a UchuAlpha Micro 1 (Uchu -> UchuAlpha Micro) -> LightDark Uchu -> LightDark (UchuAlpha Micro) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Uchu -> LightDark Uchu forall c. c -> LightDark c sameLightDark Uchu Green6 tokenValue (TextColour Appearance Warning) = (Uchu -> Micro -> UchuAlpha Micro) -> Micro -> Uchu -> UchuAlpha Micro forall a b c. (a -> b -> c) -> b -> a -> c flip Uchu -> Micro -> UchuAlpha Micro forall a. Uchu -> a -> UchuAlpha a UchuAlpha Micro 1 (Uchu -> UchuAlpha Micro) -> LightDark Uchu -> LightDark (UchuAlpha Micro) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Uchu -> LightDark Uchu forall c. c -> LightDark c sameLightDark Uchu Orange6 tokenValue (TextColour Appearance Danger) = (Uchu -> Micro -> UchuAlpha Micro) -> Micro -> Uchu -> UchuAlpha Micro forall a b c. (a -> b -> c) -> b -> a -> c flip Uchu -> Micro -> UchuAlpha Micro forall a. Uchu -> a -> UchuAlpha a UchuAlpha Micro 1 (Uchu -> UchuAlpha Micro) -> LightDark Uchu -> LightDark (UchuAlpha Micro) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Uchu -> LightDark Uchu forall c. c -> LightDark c sameLightDark Uchu Red tokenValue (TextColour Appearance Discovery) = (Uchu -> Micro -> UchuAlpha Micro) -> Micro -> Uchu -> UchuAlpha Micro forall a b c. (a -> b -> c) -> b -> a -> c flip Uchu -> Micro -> UchuAlpha Micro forall a. Uchu -> a -> UchuAlpha a UchuAlpha Micro 1 (Uchu -> UchuAlpha Micro) -> LightDark Uchu -> LightDark (UchuAlpha Micro) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Uchu -> LightDark Uchu forall c. c -> LightDark c sameLightDark Uchu Purple data InverseTextColour = InverseTextColour deriving stock (InverseTextColour -> InverseTextColour -> Bool (InverseTextColour -> InverseTextColour -> Bool) -> (InverseTextColour -> InverseTextColour -> Bool) -> Eq InverseTextColour forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: InverseTextColour -> InverseTextColour -> Bool == :: InverseTextColour -> InverseTextColour -> Bool $c/= :: InverseTextColour -> InverseTextColour -> Bool /= :: InverseTextColour -> InverseTextColour -> Bool Eq, InverseTextColour InverseTextColour -> InverseTextColour -> Bounded InverseTextColour forall a. a -> a -> Bounded a $cminBound :: InverseTextColour minBound :: InverseTextColour $cmaxBound :: InverseTextColour maxBound :: InverseTextColour Bounded, Int -> InverseTextColour InverseTextColour -> Int InverseTextColour -> [InverseTextColour] InverseTextColour -> InverseTextColour InverseTextColour -> InverseTextColour -> [InverseTextColour] InverseTextColour -> InverseTextColour -> InverseTextColour -> [InverseTextColour] (InverseTextColour -> InverseTextColour) -> (InverseTextColour -> InverseTextColour) -> (Int -> InverseTextColour) -> (InverseTextColour -> Int) -> (InverseTextColour -> [InverseTextColour]) -> (InverseTextColour -> InverseTextColour -> [InverseTextColour]) -> (InverseTextColour -> InverseTextColour -> [InverseTextColour]) -> (InverseTextColour -> InverseTextColour -> InverseTextColour -> [InverseTextColour]) -> Enum InverseTextColour 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 :: InverseTextColour -> InverseTextColour succ :: InverseTextColour -> InverseTextColour $cpred :: InverseTextColour -> InverseTextColour pred :: InverseTextColour -> InverseTextColour $ctoEnum :: Int -> InverseTextColour toEnum :: Int -> InverseTextColour $cfromEnum :: InverseTextColour -> Int fromEnum :: InverseTextColour -> Int $cenumFrom :: InverseTextColour -> [InverseTextColour] enumFrom :: InverseTextColour -> [InverseTextColour] $cenumFromThen :: InverseTextColour -> InverseTextColour -> [InverseTextColour] enumFromThen :: InverseTextColour -> InverseTextColour -> [InverseTextColour] $cenumFromTo :: InverseTextColour -> InverseTextColour -> [InverseTextColour] enumFromTo :: InverseTextColour -> InverseTextColour -> [InverseTextColour] $cenumFromThenTo :: InverseTextColour -> InverseTextColour -> InverseTextColour -> [InverseTextColour] enumFromThenTo :: InverseTextColour -> InverseTextColour -> InverseTextColour -> [InverseTextColour] Enum) instance Token InverseTextColour where tokenName :: forall s. (IsString s, Semigroup s) => InverseTextColour -> s tokenName InverseTextColour InverseTextColour = s "text-inverse-color" instance ValueToken InverseTextColour where type ValueType InverseTextColour = LightDark (UchuAlpha Micro) tokenValue :: InverseTextColour -> ValueType InverseTextColour tokenValue InverseTextColour InverseTextColour = LightDark (UchuAlpha Micro) -> LightDark (UchuAlpha Micro) LightDark (UchuAlpha Micro) -> ValueType InverseTextColour forall c. LightDark c -> LightDark c flipLightDark (LightDark (UchuAlpha Micro) -> ValueType InverseTextColour) -> (TextColour -> LightDark (UchuAlpha Micro)) -> TextColour -> ValueType InverseTextColour forall b c a. (b -> c) -> (a -> b) -> a -> c forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k). Category cat => cat b c -> cat a b -> cat a c . TextColour -> LightDark (UchuAlpha Micro) TextColour -> ValueType TextColour forall t. ValueToken t => t -> ValueType t tokenValue (TextColour -> ValueType InverseTextColour) -> TextColour -> ValueType InverseTextColour forall a b. (a -> b) -> a -> b $ Appearance -> TextColour TextColour Appearance Default