{-# LANGUAGE OverloadedStrings #-} module Cli.Extras.Theme where import Data.Text (Text) data CliTheme = CliTheme { CliTheme -> Text _cliTheme_done :: Text , CliTheme -> Text _cliTheme_failed :: Text , CliTheme -> Text _cliTheme_arrow :: Text , CliTheme -> SpinnerTheme _cliTheme_spinner :: SpinnerTheme } type SpinnerTheme = [Text] unicodeTheme :: CliTheme unicodeTheme :: CliTheme unicodeTheme = CliTheme :: Text -> Text -> Text -> SpinnerTheme -> CliTheme CliTheme { _cliTheme_done :: Text _cliTheme_done = "✔" , _cliTheme_failed :: Text _cliTheme_failed = "✖" , _cliTheme_arrow :: Text _cliTheme_arrow = "⇾" , _cliTheme_spinner :: SpinnerTheme _cliTheme_spinner = ["◐", "◓", "◑", "◒"] } noUnicodeTheme :: CliTheme noUnicodeTheme :: CliTheme noUnicodeTheme = CliTheme :: Text -> Text -> Text -> SpinnerTheme -> CliTheme CliTheme { _cliTheme_done :: Text _cliTheme_done = "DONE" , _cliTheme_failed :: Text _cliTheme_failed = "FAILED" , _cliTheme_arrow :: Text _cliTheme_arrow = "->" , _cliTheme_spinner :: SpinnerTheme _cliTheme_spinner = ["|", "/", "-", "\\"] }