{-# 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 = ["|", "/", "-", "\\"]
  }