library(tidyverse)

vote <- function(text, tick = T) {
  text    <- gsub("(\\n[0-9])\\.", "\\1`", text)
  choices <- read.table(text=text, sep="`")
  choices <- cbind(LETTERS[1:nrow(choices)],choices)
  choices <- cbind(
    choices,
    ifelse(
      (choices[,2]==1 & tick),
      "<span class='checkmark fragment'>✔</span>",
      ""))

  html.rows <- paste0("
  <div>
    <div class='votespace'>
      <div class='voteletter'>", choices[, 1], ")</div>
      <div class='votewrapper'>
        <div class='votebar'></div>
        <div class='voteprop'></div>
      </div>
    </div>
    <div>", choices[, 3], choices[, 4], "</div>
  </div>", collapse = "")
  paste0("
    <div class='votecontainer'>
    <div class='votemsg'></div>
    <div class='votable'>",
        html.rows, "
    </div>
    </div>") %>%
  htmltools::HTML()

}

qr <- function(url) {
  qr <- qrcode::qr_code(url)
  par(bg="transparent")
  plot(qr, col=c("transparent", "#0D0E0E"))
}


color_red_100 <- "#FFEFD9"
color_red_200 <- "#FEDFB3"
color_red_400 <- "#B0425B"
color_red_500 <- "#960324"
color_red_600 <- "#70021B"
color_red_700 <- "#4B0112"
color_red_800 <- "#250109"
color_green_100 <- "#F6F5DD"
color_green_200 <- "#EDEBBA"
color_green_500 <- "#445100"
color_green_600 <- "#333D00"
color_green_700 <- "#222900"
color_green_800 <- "#111400"
color_blue_100 <- "#E3F1FB"
color_blue_200 <- "#C6E2F7"
color_blue_300 <- "#80A4B7"
color_blue_400 <- "#407793"
color_blue_500 <- "#004A6F"
color_blue_600 <- "#003853"
color_blue_700 <- "#002538"
color_blue_800 <- "#00131C"
color_neutral_100 <- "#E4E3DD"
color_neutral_200 <- "#CCCDCD"
color_neutral_300 <- "#989A9B"
color_neutral_400 <- "#656869"
color_neutral_500 <- "#323637"
color_neutral_600 <- "#262929"
color_neutral_700 <- "#191B1C"
color_neutral_800 <- "#0D0E0E"
color_black <- "#000000"
color_white <- "#FFFFFF"
color_dark_teal <- "#02373f"
color_light_green <- "#e2f0e4"
color_dark_red_100 <- "#F9E5F0"
color_dark_red_200 <- "#FED5EB"
color_dark_red_500 <- "#8F0047"
color_dark_red_600 <- "#6B0035"
color_dark_red_700 <- "#480024"
color_dark_red_800 <- "#240012"
color_turquoise_100 <- "#EBF5F5"
color_turquoise_200 <- "#D6ECEB"
color_turquoise_500 <- "#005556"
color_turquoise_600 <- "#003F40"
color_turquoise_700 <- "#002A2B"
color_turquoise_800 <- "#001515"
color_brown_100 <- "#FFF8D7"
color_brown_200 <- "#FFF1B0"
color_brown_500 <- "#614F00"
color_brown_600 <- "#493B00"
color_brown_700 <- "#312800"
color_brown_800 <- "#181400"
color_sand <- "#F3EFE9"

theme_goethe_light <- function() {
  target <- knitr::opts_knit$get("rmarkdown.pandoc.to")
  theme_minimal() %+replace%
    theme(
      text = element_text(family = "Open Sans", size = 12),
      geom = element_geom(
        color = color_dark_red_500,
        fill = color_dark_red_500
      ),
      legend.text.align = 0,
      legend.position = c(0.9, 0.8),
      plot.background = element_rect(fill = color_sand, color = NA),
      panel.background = element_rect(fill = "transparent", color = NA),
      panel.grid = element_line(color = color_neutral_200),
      panel.grid.minor = element_line(color = color_neutral_100),
      axis.text = element_text(color = color_neutral_500, size = 10)
    )
}

theme_goethe_dark <- function() {
  theme_goethe_light() %+replace%
    theme(
      # text = element_text(family = "Open Sans", size = 12, color = color_sand),
      plot.background = element_rect(fill = color_neutral_700, color = NA),
      panel.grid = element_line(color = color_neutral_500),
      panel.grid.minor = element_line(color = color_neutral_600),
      axis.text = element_text(color = color_neutral_300, size = 10),
    )
}

