From daa4e22cbb6fac4b4d3c17de6c2130d987b047fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arthur=20Br=C3=A9ant?= Date: Wed, 24 Jul 2024 11:06:44 +0200 Subject: [PATCH 01/16] doc: update pkgdown to bootsrap 5 --- _pkgdown.yml | 165 ------------------------------------------- pkgdown/_pkgdown.yml | 42 +++++++++++ pkgdown/extra.scss | 22 ++++++ 3 files changed, 64 insertions(+), 165 deletions(-) delete mode 100644 _pkgdown.yml create mode 100644 pkgdown/_pkgdown.yml create mode 100644 pkgdown/extra.scss diff --git a/_pkgdown.yml b/_pkgdown.yml deleted file mode 100644 index b2473ea4..00000000 --- a/_pkgdown.yml +++ /dev/null @@ -1,165 +0,0 @@ -template: - package: thinkrtemplate -hexURL: https://github.com/ThinkR-open/golem/blob/master/inst/rstudio/templates/project/golem.png?raw=true - -development: - mode: auto - -reference: - - - title: Launch app - desc: Function `run_dev()` will execute the content of dev/run_dev.R and launch the application - contents: - - run_dev - - - title: Create files - desc: These functions create files inside the inst/app folder. These functions can be used outside of a golem project. - contents: - - add_css_file - - add_html_template - - add_js_file - - add_js_handler - - add_js_input_binding - - add_js_output_binding - - add_ui_server_files - - - title: Create a Dockerfile - desc: | - Build a container containing your Shiny App. `add_dockerfile()` creates a "classical" Dockerfile, - while `add_dockerfile_shinyproxy()` and `add_dockerfile_heroku()` creates platform specific Dockerfile. - contents: - - add_dockerfile - - add_dockerfile_shinyproxy - - add_dockerfile_heroku - - - title: Use files - desc: | - `use_external_js_file` and `use_external_css_file`download files from external sources and install - them inside the appropriate directory. `use_utils_ui` copies the golem_utils_ui.R to the R folder and `use_utils_server` - copies the golem_utils_server.R to the R folder. - contents: - - use_external_js_file - - use_external_css_file - - use_utils_ui - - use_utils_server - - - title: Add fct_ and utils_ files - desc: Add fct_ and utils_ files - contents: - - add_fct - - add_utils - - - title: Add an app.R - desc: Add an app.R at the root of your package to deploy on RStudio Connect - contents: - - add_positconnect_file - - add_shinyappsio_file - - add_shinyserver_file - - - title: Mode detection - desc: Is the app in dev mode or prod mode? - contents: - - app_prod - - app_dev - - - title: Dev dependent functions - desc: This functions will be run only if `golem::app_dev()` returns TRUE. - contents: - - cat_dev - - print_dev - - message_dev - - warning_dev - - browser_dev - - - title: Test helpers - desc: These functions are designed to be used inside the tests in your Shiny app package. - contents: - - expect_shinytag - - expect_shinytaglist - - expect_html_equal - - expect_running - - - title: Favicon functions - desc: This function adds the favicon from ico to your shiny app. - contents: - - use_favicon - - use_favicon - - favicon - - - title: Addins - desc: | - `insert_ns()` takes a selected character vector and wrap it in `ns()`. The series of `go_to_*()` - addins help you go to common files used in developing a {golem} application. - contents: - - insert_ns - - go_to_start - - go_to_dev - - go_to_deploy - - go_to_run_dev - - go_to_app_ui - - go_to_app_server - - go_to_run_app - - - title: JavaScript interaction functions - desc: | - `activate_js` is used in your UI to insert directly the JavaScript functions contained in golem. - These functions can be called from the server with `invoke_js`. `invoke_js` can also be used to launch - any JS function created inside a Shiny JavaScript handler. - contents: - - activate_js - - invoke_js - - - title: Options - desc: | - Set and get a series of options to be used with `{golem}`. These options are found inside the - `golem-config.yml` file, found in most cases inside the inst folder. - contents: - - set_golem_options - - set_golem_wd - - set_golem_name - - set_golem_version - - get_golem_wd - - get_golem_name - - get_golem_version - - - title: Add recommended elements - desc: | - `use_recommended_deps` adds shiny, DT, attempt, glue, golem, htmltools to dependencies - `use_recommended_tests` adds a test folder and copy the golem tests - `install_dev_deps` install all packages needed for golem developpement - contents: - - use_recommended_deps - - use_recommended_tests - - install_dev_deps - - - title: Misc - contents: - - add_module - - amend_golem_config - - create_golem - - add_resource_path - - browser_button - - bundle_resources - - amend_golem_config - - detach_all_attached - - document_and_reload - - fill_desc - - make_dev - - with_golem_options - - maintenance_page - - is_golem - - - title: internal - contents: - - disable_autoload - - get_golem_options - - get_sysreqs - - golem - - is_running - - module_template - - project_hook - - sanity_check - - js_handler_template - - use_module_test - - get_current_config - - pkg_name diff --git a/pkgdown/_pkgdown.yml b/pkgdown/_pkgdown.yml new file mode 100644 index 00000000..35a4b7e8 --- /dev/null +++ b/pkgdown/_pkgdown.yml @@ -0,0 +1,42 @@ +url: https://thinkr-open.github.io/golem/ + +template: + bootstrap: 5 + theme: github-dark + bslib: + pkgdown-nav-height: 100px + info: "#f15521" + bg: "#fafafa" + fg: "#38424f" + navbar-brand-font-size: 2rem + navbar-light-brand-color: "#fafafa" + navbar-light-brand-hover-color: "#fafafa" + navbar-light-color: "#fafafa" + navbar-light-hover-color: "#fafafa" + navbar-light-toggler-border-color: "#fafafa" + link-color: "#f15521" + link-decoration: underline dotted + dropdown-link-active-bg: "#f15521" + code-bg: "#f155212b" + base_font: { google: "Rubik" } + heading_font: { google: "Rubik" } + +navbar: + bg: info + type: light + structure: + left: [reference, articles, golemverse] + right: [news, github] + components: + golemverse: + text: Explore the Golemverse + href: https://golemverse.org/ + aria-label: Golemverse + +footer: + structure: + left: thinkr + right: [golemverse] + components: + thinkr: © ThinkR - A French company of R experts + golemverse: Explore the Golemverse diff --git a/pkgdown/extra.scss b/pkgdown/extra.scss new file mode 100644 index 00000000..7a2c492b --- /dev/null +++ b/pkgdown/extra.scss @@ -0,0 +1,22 @@ +.navbar-dark input[type="search"] { + background-color: var(--bs-body-bg); + color: var(--bs-body-color); +} + +.navbar-light .navbar-nav .active > .nav-link { + color: var(--bs-body-bg); + background: var(--bs-info); +} + +.navbar-nav .nav-link.active, +.navbar-nav .nav-link.show { + color: var(--bs-body-bg); + background: var(--bs-info); +} + +.text-muted { + color: var(--bs-body-bg) !important; + background-color: #7176b83d; + padding: 1.5px 2px; + border-radius: 4px; +} From 93ae951b5a684181f7a53416379120adeb5a5dbc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arthur=20Br=C3=A9ant?= Date: Wed, 24 Jul 2024 11:09:41 +0200 Subject: [PATCH 02/16] ci: do not require thinkrtemplate anymore --- .github/workflows/pkgdown.yaml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/workflows/pkgdown.yaml b/.github/workflows/pkgdown.yaml index b55b3790..023fbd70 100644 --- a/.github/workflows/pkgdown.yaml +++ b/.github/workflows/pkgdown.yaml @@ -30,10 +30,6 @@ jobs: extra-packages: any::pkgdown, local::. needs: website - - name: Install thinkrtemplate - run: install.packages("remotes");remotes::install_github("ThinkR-open/thinkrtemplate") - shell: Rscript {0} - - name: Build site run: pkgdown::build_site_github_pages(new_process = FALSE, install = FALSE) shell: Rscript {0} From 1df2eeb8924586e5ccea7eef9eea2511e82bd6bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arthur=20Br=C3=A9ant?= Date: Wed, 24 Jul 2024 12:14:43 +0200 Subject: [PATCH 03/16] doc: create resources tab --- pkgdown/_pkgdown.yml | 14 +++++++---- vignettes/resources.Rmd | 43 ++++++++++++++++++++++++++++++++ vignettes/z_golem_cheatsheet.Rmd | 27 -------------------- 3 files changed, 52 insertions(+), 32 deletions(-) create mode 100644 vignettes/resources.Rmd delete mode 100644 vignettes/z_golem_cheatsheet.Rmd diff --git a/pkgdown/_pkgdown.yml b/pkgdown/_pkgdown.yml index 35a4b7e8..8fb04929 100644 --- a/pkgdown/_pkgdown.yml +++ b/pkgdown/_pkgdown.yml @@ -5,6 +5,7 @@ template: theme: github-dark bslib: pkgdown-nav-height: 100px + primary: "#7176b8" info: "#f15521" bg: "#fafafa" fg: "#38424f" @@ -25,18 +26,21 @@ navbar: bg: info type: light structure: - left: [reference, articles, golemverse] - right: [news, github] + left: [reference, articles, resources, news] + right: [github, golemverse] components: golemverse: - text: Explore the Golemverse + icon: fas fa-toolbox href: https://golemverse.org/ aria-label: Golemverse + resources: + text: Resources + href: articles/resources.html footer: structure: left: thinkr right: [golemverse] components: - thinkr: © ThinkR - A French company of R experts - golemverse: Explore the Golemverse + thinkr: © ThinkR - A French company of R experts + golemverse: Explore the Golemverse diff --git a/vignettes/resources.Rmd b/vignettes/resources.Rmd new file mode 100644 index 00000000..ff46ecc9 --- /dev/null +++ b/vignettes/resources.Rmd @@ -0,0 +1,43 @@ +--- +title: "Resources" +output: rmarkdown::html_vignette +vignette: > + %\VignetteIndexEntry{Resources} + %\VignetteEngine{knitr::rmarkdown} + %\VignetteEncoding{UTF-8} +--- + +The `golem` package is part of the [`{golemverse}`](https://golemverse.org/), a series of tools for Shiny. +A list of various `golem` related resources (tutorials, video, blog post,...) can be found [here](https://golemverse.org/resources/). + +# Examples apps + +You can find apps made by [ThinkR](https://thinkr.fr/) using `golem` here: + +- +- + +These are examples **from the community**. Please note that they may not necessarily be written in a canonical fashion and may have been written with different versions of `golem` or [`Shiny`](https://shiny.posit.co/). + +- +- +- +- + +Do you have a `golem` app you'd like to share? Please open a PR to add it to this list! + +# Book + +Read the book [Engineering Production-Grade Shiny Apps](https://engineering-shiny.org/). + +# Cheatsheet + +The high-resolution `golem` cheatsheet is available to download here: + + +```{r, echo=FALSE, out.width="100%"} +knitr::include_graphics("golem_cheatsheet_V0.1.jpg") +``` + + + diff --git a/vignettes/z_golem_cheatsheet.Rmd b/vignettes/z_golem_cheatsheet.Rmd deleted file mode 100644 index 10c3967b..00000000 --- a/vignettes/z_golem_cheatsheet.Rmd +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: "e_golem_cheatsheet" -output: rmarkdown::html_vignette -vignette: > - %\VignetteIndexEntry{e_golem_cheatsheet} - %\VignetteEngine{knitr::rmarkdown} - %\VignetteEncoding{UTF-8} ---- - -```{r, include = FALSE} -knitr::opts_chunk$set( - collapse = TRUE, - comment = "#>" -) -``` - -**[The high-resolution {golem} cheatsheet is available to download here](https://thinkr.fr/golem_cheatsheet_V0.1.pdf)** - - -```{r, echo=FALSE, out.width="100%"} -knitr::include_graphics("golem_cheatsheet_V0.1.jpg") -``` - - - - - From 43579d518a3233d2c97ab2129f5abdfed26b8b60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arthur=20Br=C3=A9ant?= Date: Wed, 24 Jul 2024 13:29:39 +0200 Subject: [PATCH 04/16] doc: update README --- README.Rmd | 140 +++++++------------- README.md | 232 +++++++++------------------------- inst/img/golemtemplate.png | Bin 50287 -> 0 bytes man/figures/golemtemplate.png | Bin 0 -> 41543 bytes 4 files changed, 105 insertions(+), 267 deletions(-) delete mode 100644 inst/img/golemtemplate.png create mode 100644 man/figures/golemtemplate.png diff --git a/README.Rmd b/README.Rmd index fb36995a..20df7a2e 100644 --- a/README.Rmd +++ b/README.Rmd @@ -23,143 +23,95 @@ link_to_branch_svg <- paste0( "https://codecov.io/gh/ThinkR-open/golem/branch/", name_branch, "/graph/badge.svg" - ) +) link_to_branch_html <- paste0( "https://app.codecov.io/github/ThinkR-open/golem/tree/", name_branch - ) +) ``` +![](https://img.shields.io/badge/r%20package-%23276DC3.svg?style=for-the-badge&logo=r) + +[![CRAN](https://www.r-pkg.org/badges/version/golem)](https://cran.r-project.org/package=golem) +[![downloads monthly](https://cranlogs.r-pkg.org/badges/golem)](https://CRAN.R-project.org/package=golem) +[![downloads total](https://cranlogs.r-pkg.org/badges/grand-total/golem)](https://CRAN.R-project.org/package=golem) + ```{r, echo = FALSE, results = "asis"} -cat('[![Lifecycle: stable](https://img.shields.io/badge/lifecycle-stable-brightgreen.svg)](https://lifecycle.r-lib.org/articles/stages.html)') -cat('[![R-CMD-check](https://github.com/ThinkR-open/golem/workflows/R-CMD-check/badge.svg)](https://github.com/ThinkR-open/golem/actions)') +cat("[![R-CMD-check](https://github.com/ThinkR-open/golem/workflows/R-CMD-check/badge.svg)](https://github.com/ThinkR-open/golem/actions)") +cat("") cat(paste0("\n[![Coverage status](", link_to_branch_svg, ")](", link_to_branch_html, ")")) -cat('[![CRAN status](https://www.r-pkg.org/badges/version/golem)](https://cran.r-project.org/package=golem)') ``` - + # {golem} -`{golem}` is an opinionated framework for building production-grade shiny applications. +`Golem` is an opinionated framework for building production-grade shiny applications. +It is designed to help you build robust, maintainable shiny apps, with a consistent structure and workflow. + +This package helps you to: + +- **Build** a shiny application with a solid foundation inside a package, +- **Develop** your application in a robust and scalable way, +- **Test** your application with a set of tools and best practices, +- **Deploy** your application in a production-ready environment. ## Installation -- You can install the stable version from CRAN with: +You can install the stable version from CRAN with: ``` r install.packages("golem") ``` -- You can install the development version from [GitHub](https://github.com/Thinkr-open/golem) with: +You can install the development version from [GitHub](https://github.com/Thinkr-open/golem) with: ``` r # install.packages("remotes") -remotes::install_github("Thinkr-open/golem") # very close to CRAN version -# remotes::install_github("Thinkr-open/golem@dev") # if you like to play +remotes::install_github("Thinkr-open/golem") ``` -## Resources - -The `{golem}` package is part of the [`{golemverse}`](https://golemverse.org/), a series of tools for Shiny. -A list of various `{golem}` related resources (tutorials, video, blog post,...) can be found [here](https://golemverse.org/resources/). +## Create a new application with `golem` +### With RStudio -## Launch the project +If you are developping in RStudio, you can use the `golem` RStudio addin to create a new application. -Create a new package with the project template: +Go to `File` > `New Project` > `New Directory` > Search for `Package for Shiny App using golem`: ```{r, echo=FALSE, out.width="80%", eval=TRUE} -knitr::include_graphics("https://raw.githubusercontent.com/ThinkR-open/golem/master/inst/img/golemtemplate.png") +knitr::include_graphics("man/figures/golemtemplate.png") ``` -## Step by step guide - -See full documentation in the `{pkgdown}` website: - -[CRAN] - -[dev] - -After project creation, you'll land on `dev/01_start.R`. There are also `dev/02_dev.R` and `dev/03_deploy.R` - -These files are used to keep a track of all the steps you'll be following while building your app. - -### Step 1 : Getting Started - -Read [the Getting Started](https://thinkr-open.github.io/golem/articles/a_start.html) Vignette for a detailed walkthrough. - -### Step 2 : Day to Day Dev - -Read [Day to Day Dev](https://thinkr-open.github.io/golem/articles/b_dev.html) Vignette for a detailed walkthrough. - -### Step 3: deploy - -Read [Deploying Apps with {golem}](https://thinkr-open.github.io/golem/articles/c_deploy.html) Vignette for a detailed walkthrough. - +### With R -## Tool series +You can also create a new application with the following R code: -This package is part of a series of tools for Shiny, which includes: - -- `{golem}` - -- `{shinipsum}` - -- `{fakir}` - -- `{gemstones}` - - -## Examples apps - -These are examples from the community. Please note that they may not necessarily be written in a canonical fashion and may have been written with different versions of `{golem}` or `{shiny}`. - -- -- -- -- - -You can also find apps at: - -- -- - -## About - -You're reading the doc about version: `r pkgload::pkg_version()` - -This `README` has been compiled on the - -```{r} -Sys.time() +```{r eval = FALSE} +golem::create_golem("mygolemapp") ``` -Here are the test & coverage results: +Run this code in your R console will create a new golem application in a folder called `mygolemapp` where you run the code. -```{r error = TRUE} -devtools::check(quiet = TRUE) -``` +A new Rstudio window will open with the new project. -```{r echo = FALSE} -unloadNamespace("golem") -``` +## Launch your app -```{r error = TRUE} -covr::package_coverage() -``` +Once your project is created, you can run your app with the following code: -## CoC +```{r eval = FALSE} +golem::run_dev() +``` -Please note that this project is released with a [Contributor Code of Conduct](https://www.contributor-covenant.org/version/1/0/0/code-of-conduct.html). By participating in this project you agree to abide by its terms. +Enjoy your new app! +## Discover {golem} -## Note for the contributors +Golem documentation is available at . -Please style the files according to `grkstyle::grk_style_transformer()` + -```{r eval = FALSE} -# If you work in RStudio -options(styler.addins_style_transformer = "grkstyle::grk_style_transformer()") +## Code of Conduct -# If you work in VSCode -options(languageserver.formatting_style = function(options) { - grkstyle::grk_style_transformer() -}) -``` +Please note that this project is released with a [Contributor Code of Conduct](https://www.contributor-covenant.org/version/1/0/0/code-of-conduct.html). +By participating in this project you agree to abide by its terms. diff --git a/README.md b/README.md index b2fa05fe..44a6b9fa 100644 --- a/README.md +++ b/README.md @@ -1,210 +1,96 @@ + -[![Lifecycle: -stable](https://img.shields.io/badge/lifecycle-stable-brightgreen.svg)](https://lifecycle.r-lib.org/articles/stages.html)[![R-CMD-check](https://github.com/ThinkR-open/golem/workflows/R-CMD-check/badge.svg)](https://github.com/ThinkR-open/golem/actions) +![](https://img.shields.io/badge/r%20package-%23276DC3.svg?style=for-the-badge&logo=r) + +[![CRAN](https://www.r-pkg.org/badges/version/golem)](https://cran.r-project.org/package=golem) +[![downloads +monthly](https://cranlogs.r-pkg.org/badges/golem)](https://CRAN.R-project.org/package=golem) +[![downloads +total](https://cranlogs.r-pkg.org/badges/grand-total/golem)](https://CRAN.R-project.org/package=golem) + +[![R-CMD-check](https://github.com/ThinkR-open/golem/workflows/R-CMD-check/badge.svg)](https://github.com/ThinkR-open/golem/actions) [![Coverage -status](https://codecov.io/gh/ThinkR-open/golem/branch/dev/graph/badge.svg)](https://app.codecov.io/github/ThinkR-open/golem/tree/dev)[![CRAN -status](https://www.r-pkg.org/badges/version/golem)](https://cran.r-project.org/package=golem) +status](https://codecov.io/gh/ThinkR-open/golem/branch/use-bslib/graph/badge.svg)](https://app.codecov.io/github/ThinkR-open/golem/tree/use-bslib) # {golem} -`{golem}` is an opinionated framework for building production-grade -shiny applications. +`Golem` is an opinionated framework for building production-grade shiny +applications. It is designed to help you build robust, maintainable +shiny apps, with a consistent structure and workflow. + +This package helps you to: + +- **Build** a shiny application with a solid foundation inside a + package, +- **Develop** your application in a robust and scalable way, +- **Test** your application with a set of tools and best practices, +- **Deploy** your application in a production-ready environment. ## Installation -- You can install the stable version from CRAN with: +You can install the stable version from CRAN with: - +``` r +install.packages("golem") +``` - install.packages("golem") +You can install the development version from +[GitHub](https://github.com/Thinkr-open/golem) with: -- You can install the development version from - [GitHub](https://github.com/Thinkr-open/golem) with: +``` r +# install.packages("remotes") +remotes::install_github("Thinkr-open/golem") +``` - +## Create a new application with `golem` - # install.packages("remotes") - remotes::install_github("Thinkr-open/golem") # very close to CRAN version - # remotes::install_github("Thinkr-open/golem@dev") # if you like to play +### With RStudio -## Resources +If you are developping in RStudio, you can use the `golem` RStudio addin +to create a new application. -The `{golem}` package is part of the -[`{golemverse}`](https://golemverse.org/), a series of tools for Shiny. -A list of various `{golem}` related resources (tutorials, video, blog -post,…) can be found [here](https://golemverse.org/resources/). +Go to `File` \> `New Project` \> `New Directory` \> Search for +`Package for Shiny App using golem`: -## Launch the project + -Create a new package with the project template: +### With R - +You can also create a new application with the following R code: -## Step by step guide +``` r +golem::create_golem("mygolemapp") +``` -See full documentation in the `{pkgdown}` website: +Run this code in your R console will create a new golem application in a +folder called `mygolemapp` where you run the code. -\[CRAN\] +A new Rstudio window will open with the new project. -\[dev\] +## Launch your app -After project creation, you’ll land on `dev/01_start.R`. There are also -`dev/02_dev.R` and `dev/03_deploy.R` +Once your project is created, you can run your app with the following +code: -These files are used to keep a track of all the steps you’ll be -following while building your app. +``` r +golem::run_dev() +``` -### Step 1 : Getting Started +Enjoy your new app! -Read [the Getting -Started](https://thinkr-open.github.io/golem/articles/a_start.html) -Vignette for a detailed walkthrough. +## Discover {golem} -### Step 2 : Day to Day Dev +Golem documentation is available at +. -Read [Day to Day -Dev](https://thinkr-open.github.io/golem/articles/b_dev.html) Vignette -for a detailed walkthrough. + -### Step 3: deploy - -Read [Deploying Apps with -{golem}](https://thinkr-open.github.io/golem/articles/c_deploy.html) -Vignette for a detailed walkthrough. - -## Tool series - -This package is part of a series of tools for Shiny, which includes: - -- `{golem}` - -- `{shinipsum}` - -- `{fakir}` - -- `{gemstones}` - - -## Examples apps - -These are examples from the community. Please note that they may not -necessarily be written in a canonical fashion and may have been written -with different versions of `{golem}` or `{shiny}`. - -- -- -- -- - -You can also find apps at: - -- -- - -## About - -You’re reading the doc about version: 0.4.25 - -This `README` has been compiled on the - - Sys.time() - #> [1] "2024-07-04 07:50:43 UTC" - -Here are the test & coverage results: - - devtools::check(quiet = TRUE) - #> ══ Documenting ═════════════════════════════════════════════════════════════════ - #> ℹ Installed roxygen2 version (7.3.2) doesn't match required (7.3.1) - #> ✖ `check()` will not re-document this package - #> ── R CMD check results ─────────────────────────────────────── golem 0.4.25 ──── - #> Duration: 1m 21.6s - #> - #> ❯ checking Rd files ... NOTE - #> checkRd: (-1) create_golem.Rd:30: Lost braces; missing escapes or markup? - #> 30 | \item{package_name}{Package name to use. By default, {golem} uses - #> | ^ - #> checkRd: (-1) get_sysreqs.Rd:23: Lost braces; missing escapes or markup? - #> 23 | {dockerfiler}. - #> | ^ - #> checkRd: (-1) golem_opts.Rd:83: Lost braces; missing escapes or markup? - #> 83 | \item{config_file}{path to the {golem} config file} - #> | ^ - #> checkRd: (-1) install_dev_deps.Rd:5: Lost braces; missing escapes or markup? - #> 5 | \title{Install {golem} dev dependencies} - #> | ^ - #> checkRd: (-1) project_hook.Rd:13: Lost braces; missing escapes or markup? - #> 13 | \item{package_name}{Package name to use. By default, {golem} uses - #> | ^ - #> - #> 0 errors ✔ | 0 warnings ✔ | 1 note ✖ - - covr::package_coverage() - #> golem Coverage: 85.34% - #> R/addins.R: 0.00% - #> R/bootstrap_rstudio_api.R: 0.00% - #> R/enable_roxygenize.R: 0.00% - #> R/get_sysreqs.R: 0.00% - #> R/sanity_check.R: 0.00% - #> R/test_helpers.R: 30.26% - #> R/js.R: 43.75% - #> R/reload.R: 45.36% - #> R/install_dev_deps.R: 60.87% - #> R/bootstrap_attachment.R: 61.54% - #> R/bootstrap_dockerfiler.R: 63.33% - #> R/bootstrap_desc.R: 66.67% - #> R/add_dockerfiles.R: 74.19% - #> R/add_r_files.R: 78.50% - #> R/bootstrap_usethis.R: 78.57% - #> R/modules_fn.R: 78.71% - #> R/use_recommended.R: 78.79% - #> R/golem-yaml-set.R: 83.02% - #> R/use_utils.R: 83.33% - #> R/utils.R: 83.75% - #> R/add_rstudio_files.R: 85.29% - #> R/add_resource_path.R: 88.89% - #> R/create_golem.R: 89.47% - #> R/make_dev.R: 90.00% - #> R/add_files.R: 91.98% - #> R/golem-yaml-get.R: 93.18% - #> R/add_dockerfiles_renv.R: 93.91% - #> R/run_dev.R: 95.65% - #> R/desc.R: 96.67% - #> R/use_favicon.R: 96.67% - #> R/boostrap_cli.R: 100.00% - #> R/boostrap_crayon.R: 100.00% - #> R/boostrap_fs.R: 100.00% - #> R/bootstrap_pkgload.R: 100.00% - #> R/bootstrap_roxygen2.R: 100.00% - #> R/browser_button.R: 100.00% - #> R/bundle_resources.R: 100.00% - #> R/config.R: 100.00% - #> R/disable_autoload.R: 100.00% - #> R/globals.R: 100.00% - #> R/golem_welcome_page.R: 100.00% - #> R/golem-yaml-utils.R: 100.00% - #> R/is_golem.R: 100.00% - #> R/is_running.R: 100.00% - #> R/pkg_tools.R: 100.00% - #> R/set_golem_options.R: 100.00% - #> R/templates.R: 100.00% - #> R/use_files.R: 100.00% - #> R/use_readme.R: 100.00% - #> R/with_opt.R: 100.00% - -## CoC +## Code of Conduct Please note that this project is released with a [Contributor Code of Conduct](https://www.contributor-covenant.org/version/1/0/0/code-of-conduct.html). By participating in this project you agree to abide by its terms. - -## Note for the contributors - -Please style the files according to `grkstyle::grk_style_transformer()` - - # If you work in RStudio - options(styler.addins_style_transformer = "grkstyle::grk_style_transformer()") - - # If you work in VSCode - options(languageserver.formatting_style = function(options) { - grkstyle::grk_style_transformer() - }) diff --git a/inst/img/golemtemplate.png b/inst/img/golemtemplate.png deleted file mode 100644 index e64a48b79bdf0ea97a6f3c8a95f933ad827f86b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50287 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 LnPH#l*oXfIqYsgk literal 0 HcmV?d00001 From 4617ace5f7f26396b5bbd52b29a1c042c04b5d80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arthur=20Br=C3=A9ant?= Date: Wed, 24 Jul 2024 18:12:07 +0200 Subject: [PATCH 05/16] doc: first tutorial for create a first app --- pkgdown/_pkgdown.yml | 27 +++++++++++- pkgdown/extra.scss | 44 ++++++++++++++++++++ vignettes/tuto/first-golem-app.Rmd | 64 +++++++++++++++++++++++++++++ vignettes/tuto/golemtemplate.png | Bin 0 -> 41543 bytes 4 files changed, 134 insertions(+), 1 deletion(-) create mode 100644 vignettes/tuto/first-golem-app.Rmd create mode 100644 vignettes/tuto/golemtemplate.png diff --git a/pkgdown/_pkgdown.yml b/pkgdown/_pkgdown.yml index 8fb04929..9a8ef7a6 100644 --- a/pkgdown/_pkgdown.yml +++ b/pkgdown/_pkgdown.yml @@ -26,9 +26,34 @@ navbar: bg: info type: light structure: - left: [reference, articles, resources, news] + left: [reference, tuto, topics, contribute, resources] right: [github, golemverse] components: + tuto: + text: Tutorials + menu: + - text: Create your first Golem application + href: articles/tuto/first-golem-app.html + - text: Add your first module and communication + href: ~ + topics: + text: Advanced topics + menu: + - text: ------- + - text: UI + - text: Use a maintenance page + href: ~ + - text: Use bslib + href: ~ + - text: ------- + - text: Backend + - text: Add routing + href: ~ + - text: TODO + href: ~ + contribute: + text: Contribute + href: ~ golemverse: icon: fas fa-toolbox href: https://golemverse.org/ diff --git a/pkgdown/extra.scss b/pkgdown/extra.scss index 7a2c492b..33fad8c7 100644 --- a/pkgdown/extra.scss +++ b/pkgdown/extra.scss @@ -20,3 +20,47 @@ padding: 1.5px 2px; border-radius: 4px; } + +/* ---- Callouts ---- */ +.callout { + position: relative; + border: 1px solid var(--bs-primary); + padding: 1rem 2rem; + margin: 1rem 0; + border-radius: var(--bs-border-radius); + display: flex; + flex-direction: row; + align-items: center; + gap: 3rem; + background: #7176b817; + + p { + margin: auto; + } +} + +@mixin callout($content, $color) { + &::before { + content: $content; + font-weight: bold; + font-size: 1.25rem; + font-style: italic; + font-family: serif; + border-radius: 50%; + color: var(--bs-body-bg); + background-color: $color; + width: 3rem; + height: 2rem; + display: inline-flex; + align-items: center; + justify-content: center; + } +} + +.callout.callout-note { + @include callout("i", var(--bs-primary)); +} + +.callout.callout-danger { + @include callout("!", var(--bs-warning)); +} diff --git a/vignettes/tuto/first-golem-app.Rmd b/vignettes/tuto/first-golem-app.Rmd new file mode 100644 index 00000000..40b3077d --- /dev/null +++ b/vignettes/tuto/first-golem-app.Rmd @@ -0,0 +1,64 @@ +--- +title: "Create your first Golem Application" +output: rmarkdown::html_vignette +vignette: > + %\VignetteIndexEntry{Create your first Golem Application} + %\VignetteEngine{knitr::rmarkdown} + %\VignetteEncoding{UTF-8} +--- + +# Create a new application with `golem` + +First, you need to install the `golem` package. + +## Installing {golem} + +You can install the stable version of `{golem}` from CRAN: + +``` {r eval=FALSE} +install.packages("golem") +``` + +The development version of `{golem}` can be installed from GitHub using the `{remotes}` package: +```{r eval=FALSE} +remotes::install_github("Thinkr-open/golem") +``` + +## Getting started + +Note before using `golem`: + +- A `golem` app is contained inside a package, so knowing how to build a package is highly recommended. On the plus side, everything you know about package development can be reused in `golem`. + +- A `golem` app works better if you are working with `shiny modules`, so knowing how modules work is recommended, but not mandatory. + +A dedicated articles on modules is available [here](https://shiny.rstudio.com/articles/modules.html). And more specifically on how to use modules with `golem` [here](). + +## Create a package + +In case you are using RStudio, you can use the `golem` RStudio addin to create a new application. + +Go to `File` > `New Project` > `New Directory` > Search for `Package for Shiny App using golem`: + +```{r, echo=FALSE, out.width="80%", eval=TRUE} +knitr::include_graphics("golemtemplate.png") +``` + +You can also create a new application with the following R code: + +```{r eval = FALSE} +golem::create_golem(path = "path/to/package/mygolemapp") +``` + +::: {.callout .callout-danger} +::: {.callout-body} +By passing the `check_name` argument to `FALSE`, this command allows you to create "illegally-named" package (for example, `1234`). + +Note that this is not recommended and __should only be done if you know what you are doing__. +::: +::: + +Run this code in your R console will create a new golem application in a package called `mygolemapp` in the folder `path/to/package`. + +A new Rstudio window will open with the new project. + diff --git a/vignettes/tuto/golemtemplate.png b/vignettes/tuto/golemtemplate.png new file mode 100644 index 0000000000000000000000000000000000000000..e3a8f9690ef59bdc5140cee9b42c770cc4ba8d6e GIT binary patch literal 41543 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 LnPH#l*oXfIqYsgk literal 0 HcmV?d00001 From a1ee732f46d98871a5371d8f1d6d10e28aa6578c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arthur=20Br=C3=A9ant?= Date: Thu, 25 Jul 2024 10:09:04 +0200 Subject: [PATCH 06/16] doc: rename tutorials folder --- pkgdown/_pkgdown.yml | 6 +++--- vignettes/{tuto => tutos}/first-golem-app.Rmd | 0 vignettes/{tuto => tutos}/golemtemplate.png | Bin 3 files changed, 3 insertions(+), 3 deletions(-) rename vignettes/{tuto => tutos}/first-golem-app.Rmd (100%) rename vignettes/{tuto => tutos}/golemtemplate.png (100%) diff --git a/pkgdown/_pkgdown.yml b/pkgdown/_pkgdown.yml index 9a8ef7a6..b11635a0 100644 --- a/pkgdown/_pkgdown.yml +++ b/pkgdown/_pkgdown.yml @@ -26,14 +26,14 @@ navbar: bg: info type: light structure: - left: [reference, tuto, topics, contribute, resources] + left: [reference, tutos, topics, contribute, resources] right: [github, golemverse] components: - tuto: + tutos: text: Tutorials menu: - text: Create your first Golem application - href: articles/tuto/first-golem-app.html + href: articles/tutos/first-golem-app.html - text: Add your first module and communication href: ~ topics: diff --git a/vignettes/tuto/first-golem-app.Rmd b/vignettes/tutos/first-golem-app.Rmd similarity index 100% rename from vignettes/tuto/first-golem-app.Rmd rename to vignettes/tutos/first-golem-app.Rmd diff --git a/vignettes/tuto/golemtemplate.png b/vignettes/tutos/golemtemplate.png similarity index 100% rename from vignettes/tuto/golemtemplate.png rename to vignettes/tutos/golemtemplate.png From 38729339ecbbb3ce15e14ba7285f9640efc699c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arthur=20Br=C3=A9ant?= Date: Thu, 25 Jul 2024 15:25:55 +0200 Subject: [PATCH 07/16] doc: contribute page --- pkgdown/_pkgdown.yml | 2 +- pkgdown/extra.scss | 5 +++ vignettes/contribute.Rmd | 80 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 86 insertions(+), 1 deletion(-) create mode 100644 vignettes/contribute.Rmd diff --git a/pkgdown/_pkgdown.yml b/pkgdown/_pkgdown.yml index b11635a0..358a600a 100644 --- a/pkgdown/_pkgdown.yml +++ b/pkgdown/_pkgdown.yml @@ -53,7 +53,7 @@ navbar: href: ~ contribute: text: Contribute - href: ~ + href: articles/contribute.html golemverse: icon: fas fa-toolbox href: https://golemverse.org/ diff --git a/pkgdown/extra.scss b/pkgdown/extra.scss index 33fad8c7..ea5489ea 100644 --- a/pkgdown/extra.scss +++ b/pkgdown/extra.scss @@ -64,3 +64,8 @@ .callout.callout-danger { @include callout("!", var(--bs-warning)); } + +strong { + color: var(--bs-primary); + text-decoration: underline; +} diff --git a/vignettes/contribute.Rmd b/vignettes/contribute.Rmd new file mode 100644 index 00000000..4238bc5c --- /dev/null +++ b/vignettes/contribute.Rmd @@ -0,0 +1,80 @@ +--- +title: "Contribute to Golem" +output: rmarkdown::html_vignette +vignette: > + %\VignetteIndexEntry{Contribute} + %\VignetteEngine{knitr::rmarkdown} + %\VignetteEncoding{UTF-8} +--- + +Golem is an open-source project, and we welcome contributions of all kinds. + +## Contributing to Golem + +Development of {golem} happens on GitHub. You can contribute to the package in several ways: + +- **Reporting issues**: If you find a bug, please file a minimal reproducible example on [GitHub](https://github.com/ThinkR-open/golem/issues) with a clear description of the issue. + +- **Contributing code**: If you want to contribute code, please open a pull request on [GitHub](https://github.com/ThinkR-open/golem/pulls). + +- **Documentation**: If you find a typo or error in the documentation, please open a pull request on [GitHub](https://github.com/ThinkR-open/golem/pulls). + +- **Ideas**: If you have an idea for a new feature, please open an issue on [GitHub](https://github.com/ThinkR-open/golem/issues) to discuss it. + +Any contribution is welcome! + + +## Note for the contributors + +If you want to contribute to the package, please note that the package is structured as follows: + +- The main functions are in the `R/` folder. + +- The tests are in the `tests/` folder. + +- The documentation is in the `man/` folder. + +- The vignettes are in the `vignettes/` folder. + +- The Golem template app is in the `inst/shinyexample/` folder. + +## Code style + +Golem package follows the `grkstyle` style guide. Please make sure to follow the same style when contributing to the package. + +If your are using RStudio, you can set the `grkstyle` style guide as the default style guide for the package by running the following code: + +``` {r eval=FALSE} +options( + styler.addins_style_transformer = "grkstyle::grk_style_transformer()" +) +``` + +If your are using VSCode, you can set the `grkstyle` style guide as the default style guide for the package by running the following code: + +``` {r eval=FALSE} +options(languageserver.formatting_style = function(options) { + grkstyle::grk_style_transformer() +}) +``` + +It's also possible to style one file at a time by running the following code: + +``` {r eval=FALSE} +grkstyle::grk_style_file("README.Rmd") +``` + +## Actual state of the package + +The package is in active development. The actual state of the check for `master` is: [![R-CMD-check](https://github.com/ThinkR-open/golem/actions/workflows/R-CMD-check.yaml/badge.svg?branch=master)](https://github.com/ThinkR-open/golem/actions/workflows/R-CMD-check.yaml) + +Please make sure that your contribution does not break the package. You can run the checks locally by running the following code: + +```{r, eval=FALSE} +devtools::check() +``` + +## Code of Conduct + +Please note that this project is released with a [Contributor Code of Conduct](https://www.contributor-covenant.org/version/1/0/0/code-of-conduct.html). +By participating in this project you agree to abide by its terms. From 783e35c1071bb23c05f81a97741ceb4ad0574dcd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arthur=20Br=C3=A9ant?= Date: Thu, 25 Jul 2024 15:44:44 +0200 Subject: [PATCH 08/16] fix: fix icon when screen resize --- pkgdown/extra.scss | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/pkgdown/extra.scss b/pkgdown/extra.scss index ea5489ea..32b88860 100644 --- a/pkgdown/extra.scss +++ b/pkgdown/extra.scss @@ -23,19 +23,18 @@ /* ---- Callouts ---- */ .callout { - position: relative; border: 1px solid var(--bs-primary); padding: 1rem 2rem; margin: 1rem 0; border-radius: var(--bs-border-radius); - display: flex; - flex-direction: row; + display: grid; + grid-template-columns: auto 1fr; align-items: center; gap: 3rem; background: #7176b817; p { - margin: auto; + margin: 10px 0; } } @@ -49,7 +48,7 @@ border-radius: 50%; color: var(--bs-body-bg); background-color: $color; - width: 3rem; + width: 2rem; height: 2rem; display: inline-flex; align-items: center; From 43c22483821e9a75fa6ac257cf1b95e6dfe98e5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arthur=20Br=C3=A9ant?= Date: Thu, 25 Jul 2024 16:22:35 +0200 Subject: [PATCH 09/16] doc: create first topic article --- pkgdown/_pkgdown.yml | 2 +- pkgdown/extra.scss | 11 ++ .../topics/connect_maintenance_envvar.png | Bin 0 -> 32042 bytes vignettes/topics/maintenance_page.Rmd | 123 ++++++++++++++++++ vignettes/tutos/first-golem-app.Rmd | 4 +- 5 files changed, 137 insertions(+), 3 deletions(-) create mode 100644 vignettes/topics/connect_maintenance_envvar.png create mode 100644 vignettes/topics/maintenance_page.Rmd diff --git a/pkgdown/_pkgdown.yml b/pkgdown/_pkgdown.yml index 358a600a..1e3688cd 100644 --- a/pkgdown/_pkgdown.yml +++ b/pkgdown/_pkgdown.yml @@ -42,7 +42,7 @@ navbar: - text: ------- - text: UI - text: Use a maintenance page - href: ~ + href: articles/topics/maintenance_page.html - text: Use bslib href: ~ - text: ------- diff --git a/pkgdown/extra.scss b/pkgdown/extra.scss index 32b88860..be289659 100644 --- a/pkgdown/extra.scss +++ b/pkgdown/extra.scss @@ -1,3 +1,14 @@ +h2, +.h2 { + font-size: 2rem; + color: var(--bs-body-color); + background: #7176b826; + display: inline-block; + padding: 0.125rem 0.25rem; + border-radius: 0.375rem; + margin: 10px 0; +} + .navbar-dark input[type="search"] { background-color: var(--bs-body-bg); color: var(--bs-body-color); diff --git a/vignettes/topics/connect_maintenance_envvar.png b/vignettes/topics/connect_maintenance_envvar.png new file mode 100644 index 0000000000000000000000000000000000000000..2edba9ce9a8b387e20b425b82ece21431c55ff21 GIT binary patch literal 32042 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 + %\VignetteIndexEntry{Use a maintenance page} + %\VignetteEngine{knitr::rmarkdown} + %\VignetteEncoding{UTF-8} +--- + +From time to time, you need your application to be unavailable: database update, API changes, etc... + +In order to **keep your app running but make it unavailable, you can use a maintenance mode**. When this maintenance mode is turned on, your application will be paused and a specific page will be displayed to your users. + +`Golem` comes with a default maintenance page - but - you can override it with your own. + +## Turn on the maintenance mode + +The maintenance mode will be turned on whenever the R process detects that the `GOLEM_MAINTENANCE_ACTIVE` environment variable is set to `TRUE`. + +### Locally + +To visualize the maintenance page locally, you can run the following: + +```{r eval=FALSE} +withr::with_envvar( + c("GOLEM_MAINTENANCE_ACTIVE" = TRUE), + { + golem::run_dev() + } +) +``` + +You can also set this environment variable in your environment: + +```{r eval=FALSE} +Sys.setenv("GOLEM_MAINTENANCE_ACTIVE" = TRUE) +golem::run_dev() +``` + +### Deploy on Posit Connect + +If you are deploying on **Posit Connect**, you can set this variable in the setup panel. + +```{r, echo=FALSE, fig.align="center", out.width="40%"} +knitr::include_graphics("connect_maintenance_envvar.png") +``` + +### Deploy with command line + +If you are deploying your application with a command line, you can set the environment variable before running the application: + +``` +export GOLEM_MAINTENANCE_ACTIVE=TRUE && Rscript -e "mygolem::run_app()" +``` + +## The maintenance page + +`Golem` comes with a default maintenance page, but you can override it and **use your own custom page**. + +In order to use your own page, you need to pass either an `html_document` or a `tagList` to the `with_golem_options` function in `run_app.R`: + +Here an example of a custom maintenance page with a `tagList`: + +```{r eval=FALSE} +run_app <- function( + onStart = NULL, + options = list(), + enableBookmarking = NULL, + uiPattern = "/", + ...) { + with_golem_options( + app = shinyApp( + ui = app_ui, + server = app_server, + onStart = onStart, + options = options, + enableBookmarking = enableBookmarking, + uiPattern = uiPattern + ), + golem_opts = list(...), + maintenance_page = tagList( + fluidRow( + h1("Under maintenance"), + span("Coming soon...") + ) + ) + ) +} +``` + +This will display a simple page with a title and a message. + +You can also create a full `html_document` and pass it to the `maintenance_page` argument. + +Create a new html file in the `inst` folder of your package. For example, `inst/custom_maintenance_page.html`: + +Then you can use this file in your `run_app.R`: + +```{r eval=FALSE} +run_app <- function( + onStart = NULL, + options = list(), + enableBookmarking = NULL, + uiPattern = "/", + ...) { + with_golem_options( + app = shinyApp( + ui = app_ui, + server = app_server, + onStart = onStart, + options = options, + enableBookmarking = enableBookmarking, + uiPattern = uiPattern + ), + golem_opts = list(...), + maintenance_page = shiny::htmlTemplate( + filename = app_sys( + "custom_maintenance_page.html" + ) + ) + ) +} +``` diff --git a/vignettes/tutos/first-golem-app.Rmd b/vignettes/tutos/first-golem-app.Rmd index 40b3077d..10faaeee 100644 --- a/vignettes/tutos/first-golem-app.Rmd +++ b/vignettes/tutos/first-golem-app.Rmd @@ -40,7 +40,7 @@ In case you are using RStudio, you can use the `golem` RStudio addin to create a Go to `File` > `New Project` > `New Directory` > Search for `Package for Shiny App using golem`: -```{r, echo=FALSE, out.width="80%", eval=TRUE} +```{r, echo=FALSE, fig.align="center", out.width="60%"} knitr::include_graphics("golemtemplate.png") ``` @@ -52,7 +52,7 @@ golem::create_golem(path = "path/to/package/mygolemapp") ::: {.callout .callout-danger} ::: {.callout-body} -By passing the `check_name` argument to `FALSE`, this command allows you to create "illegally-named" package (for example, `1234`). +By passing the `check_name` argument to `FALSE`, this command allows you to create "illegally-named" package (for example, `1234`). Note that this is not recommended and __should only be done if you know what you are doing__. ::: From 486f7936e6efd52f3be6df847af8b51985f73703 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arthur=20Br=C3=A9ant?= Date: Thu, 25 Jul 2024 16:32:05 +0200 Subject: [PATCH 10/16] doc: initiate some pages --- README.Rmd | 11 +++++++++-- README.md | 14 +++++++++++--- pkgdown/_pkgdown.yml | 8 +++----- vignettes/contribute.Rmd | 2 +- vignettes/topics/add_routing.Rmd | 10 ++++++++++ vignettes/topics/use_bslib.Rmd | 10 ++++++++++ 6 files changed, 44 insertions(+), 11 deletions(-) create mode 100644 vignettes/topics/add_routing.Rmd create mode 100644 vignettes/topics/use_bslib.Rmd diff --git a/README.Rmd b/README.Rmd index 20df7a2e..b16ffeed 100644 --- a/README.Rmd +++ b/README.Rmd @@ -107,9 +107,16 @@ Enjoy your new app! ## Discover {golem} -Golem documentation is available at . +### Your very first time with {golem} + +You can find find a full tutorial on how to create your first `golem` app [here](x). + +A lot of resources are available to help you get started with `golem` [here](x). + +### Contribute + +You love `golem` and want to contribute? Check out our documentation on how to contribute [here](x). - ## Code of Conduct diff --git a/README.md b/README.md index 44a6b9fa..c8f23ec7 100644 --- a/README.md +++ b/README.md @@ -84,10 +84,18 @@ Enjoy your new app! ## Discover {golem} -Golem documentation is available at -. +### Your very first time with {golem} - +You can find find a full tutorial on how to create your first `golem` +app [here](x). + +A lot of resources are available to help you get started with `golem` +[here](x). + +### Contribute + +You love `golem` and want to contribute? Check out our documentation on +how to contribute [here](x). ## Code of Conduct diff --git a/pkgdown/_pkgdown.yml b/pkgdown/_pkgdown.yml index 1e3688cd..07999d7e 100644 --- a/pkgdown/_pkgdown.yml +++ b/pkgdown/_pkgdown.yml @@ -44,13 +44,11 @@ navbar: - text: Use a maintenance page href: articles/topics/maintenance_page.html - text: Use bslib - href: ~ + href: articles/topics/use_bslib.html - text: ------- - text: Backend - - text: Add routing - href: ~ - - text: TODO - href: ~ + - text: Add routing with brochure + href: articles/topics/add_routing.html contribute: text: Contribute href: articles/contribute.html diff --git a/vignettes/contribute.Rmd b/vignettes/contribute.Rmd index 4238bc5c..018d1013 100644 --- a/vignettes/contribute.Rmd +++ b/vignettes/contribute.Rmd @@ -2,7 +2,7 @@ title: "Contribute to Golem" output: rmarkdown::html_vignette vignette: > - %\VignetteIndexEntry{Contribute} + %\VignetteIndexEntry{Contribute to Golem} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- diff --git a/vignettes/topics/add_routing.Rmd b/vignettes/topics/add_routing.Rmd new file mode 100644 index 00000000..78f67478 --- /dev/null +++ b/vignettes/topics/add_routing.Rmd @@ -0,0 +1,10 @@ +--- +title: "Add routing with brochure" +output: rmarkdown::html_vignette +vignette: > + %\VignetteIndexEntry{Add routing with brochure} + %\VignetteEngine{knitr::rmarkdown} + %\VignetteEncoding{UTF-8} +--- + +# TODO: add content \ No newline at end of file diff --git a/vignettes/topics/use_bslib.Rmd b/vignettes/topics/use_bslib.Rmd new file mode 100644 index 00000000..fbca3031 --- /dev/null +++ b/vignettes/topics/use_bslib.Rmd @@ -0,0 +1,10 @@ +--- +title: "Use bslib with Golem" +output: rmarkdown::html_vignette +vignette: > + %\VignetteIndexEntry{Use bslib with Golem} + %\VignetteEngine{knitr::rmarkdown} + %\VignetteEncoding{UTF-8} +--- + +# TODO: add content \ No newline at end of file From d79d9ca3808f9d129ce006f4d27191230262cba6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arthur=20Br=C3=A9ant?= Date: Thu, 25 Jul 2024 16:47:16 +0200 Subject: [PATCH 11/16] doc: extend documentation skeleton --- README.Rmd | 4 ++-- README.md | 4 ++-- pkgdown/_pkgdown.yml | 6 ++++-- vignettes/tutos/communication_with_modules.rmd | 10 ++++++++++ vignettes/tutos/golem_with_modules.rmd | 10 ++++++++++ 5 files changed, 28 insertions(+), 6 deletions(-) create mode 100644 vignettes/tutos/communication_with_modules.rmd create mode 100644 vignettes/tutos/golem_with_modules.rmd diff --git a/README.Rmd b/README.Rmd index b16ffeed..0535536d 100644 --- a/README.Rmd +++ b/README.Rmd @@ -105,9 +105,9 @@ golem::run_dev() Enjoy your new app! -## Discover {golem} +## Play with golem -### Your very first time with {golem} +### Your very first time with golem You can find find a full tutorial on how to create your first `golem` app [here](x). diff --git a/README.md b/README.md index c8f23ec7..af4a5b58 100644 --- a/README.md +++ b/README.md @@ -82,9 +82,9 @@ golem::run_dev() Enjoy your new app! -## Discover {golem} +## Play with golem -### Your very first time with {golem} +### Your very first time with golem You can find find a full tutorial on how to create your first `golem` app [here](x). diff --git a/pkgdown/_pkgdown.yml b/pkgdown/_pkgdown.yml index 07999d7e..262ec5b6 100644 --- a/pkgdown/_pkgdown.yml +++ b/pkgdown/_pkgdown.yml @@ -34,8 +34,10 @@ navbar: menu: - text: Create your first Golem application href: articles/tutos/first-golem-app.html - - text: Add your first module and communication - href: ~ + - text: Add your first module + href: articles/tutos/golem_with_modules.html + - text: Communication between modules + href: articles/tutos/communication_with_modules.html topics: text: Advanced topics menu: diff --git a/vignettes/tutos/communication_with_modules.rmd b/vignettes/tutos/communication_with_modules.rmd new file mode 100644 index 00000000..ed426cdc --- /dev/null +++ b/vignettes/tutos/communication_with_modules.rmd @@ -0,0 +1,10 @@ +--- +title: "Communication with modules" +output: rmarkdown::html_vignette +vignette: > + %\VignetteIndexEntry{Communication with modules} + %\VignetteEngine{knitr::rmarkdown} + %\VignetteEncoding{UTF-8} +--- + +# TODO: add content \ No newline at end of file diff --git a/vignettes/tutos/golem_with_modules.rmd b/vignettes/tutos/golem_with_modules.rmd new file mode 100644 index 00000000..fe4fa351 --- /dev/null +++ b/vignettes/tutos/golem_with_modules.rmd @@ -0,0 +1,10 @@ +--- +title: "Golem modules" +output: rmarkdown::html_vignette +vignette: > + %\VignetteIndexEntry{Golem modules} + %\VignetteEngine{knitr::rmarkdown} + %\VignetteEncoding{UTF-8} +--- + +# TODO: add content \ No newline at end of file From f9ca75f7c5451664ef1de35683f6e339035c56bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arthur=20Br=C3=A9ant?= Date: Tue, 30 Jul 2024 18:12:21 +0200 Subject: [PATCH 12/16] doc: update section title --- vignettes/topics/maintenance_page.Rmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vignettes/topics/maintenance_page.Rmd b/vignettes/topics/maintenance_page.Rmd index 0f382eb3..b9041553 100644 --- a/vignettes/topics/maintenance_page.Rmd +++ b/vignettes/topics/maintenance_page.Rmd @@ -53,7 +53,7 @@ If you are deploying your application with a command line, you can set the envir export GOLEM_MAINTENANCE_ACTIVE=TRUE && Rscript -e "mygolem::run_app()" ``` -## The maintenance page +## Customize the maintenance page `Golem` comes with a default maintenance page, but you can override it and **use your own custom page**. From 6c6960c2ac956e5d34ae268328c9e4809fa31fb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arthur=20Br=C3=A9ant?= Date: Tue, 30 Jul 2024 18:20:37 +0200 Subject: [PATCH 13/16] feat: create a new button to switch theme --- NAMESPACE | 1 + R/switch_theme_button.R | 32 +++++++++++++++++++++++++++++++ inst/utils/golem_button_theme.css | 20 +++++++++++++++++++ 3 files changed, 53 insertions(+) create mode 100644 R/switch_theme_button.R create mode 100644 inst/utils/golem_button_theme.css diff --git a/NAMESPACE b/NAMESPACE index 37bd5092..81363134 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -76,6 +76,7 @@ export(set_golem_name) export(set_golem_options) export(set_golem_version) export(set_golem_wd) +export(switch_theme_button) export(use_external_css_file) export(use_external_file) export(use_external_html_template) diff --git a/R/switch_theme_button.R b/R/switch_theme_button.R new file mode 100644 index 00000000..0ebffe7b --- /dev/null +++ b/R/switch_theme_button.R @@ -0,0 +1,32 @@ +#' @export +switch_theme_button <- function(inputId, label = NULL) { + if (!rlang::is_installed("bslib")) { + stop("You need to install bslib to use this function") + } + + button <- bslib::input_switch( + id = inputId, + label = label, + width = "fit-content" + ) |> + shiny::tagAppendAttributes( + class = "golem-switch-themer" + ) + + css_file_path <- system.file( + "utils", + "golem_button_theme.css", + package = "golem" + ) + + css_dependency <- htmltools::htmlDependency( + name = "golem-switch-themer-css", + version = "1.0.0", + src = dirname(css_file_path), + stylesheet = basename(css_file_path) + ) + + button_with_dependency <- htmltools::attachDependencies(button, css_dependency) + + button_with_dependency +} diff --git a/inst/utils/golem_button_theme.css b/inst/utils/golem_button_theme.css new file mode 100644 index 00000000..8702cd44 --- /dev/null +++ b/inst/utils/golem_button_theme.css @@ -0,0 +1,20 @@ + +.golem-switch-themer .form-switch .form-check-input:checked { + background-position: right center; + --bs-form-switch-bg: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmZmZmYiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBjbGFzcz0ibHVjaWRlIGx1Y2lkZS1tb29uIj48cGF0aCBkPSJNMTIgM2E2IDYgMCAwIDAgOSA5IDkgOSAwIDEgMS05LTlaIi8+PC9zdmc+) !important; + background-color: var(--golem-switcher); +} + +.golem-switch-themer .form-switch .form-check-input { + --bs-form-switch-bg: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmZmZmYiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBjbGFzcz0ibHVjaWRlIGx1Y2lkZS1zdW4tbWVkaXVtIj48Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSI0Ii8+PHBhdGggZD0iTTEyIDN2MSIvPjxwYXRoIGQ9Ik0xMiAyMHYxIi8+PHBhdGggZD0iTTMgMTJoMSIvPjxwYXRoIGQ9Ik0yMCAxMmgxIi8+PHBhdGggZD0ibTE4LjM2NCA1LjYzNi0uNzA3LjcwNyIvPjxwYXRoIGQ9Im02LjM0MyAxNy42NTctLjcwNy43MDciLz48cGF0aCBkPSJtNS42MzYgNS42MzYuNzA3LjcwNyIvPjxwYXRoIGQ9Im0xNy42NTcgMTcuNjU3LjcwNy43MDciLz48L3N2Zz4=) !important; + width: 2.6em !important; + height: 1.6em; + background-image: var(--bs-form-switch-bg); + border-radius: 2em; + transition: background-position 0.15s ease-in-out; + background-repeat: no-repeat; + background-size: 18px; + --golem-switcher: var(--bs-primary); + background-color: var(--golem-switcher); + cursor: pointer; +} From cf4118f5f923e89a87e8e1edfeeee21ad25defc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arthur=20Br=C3=A9ant?= Date: Wed, 31 Jul 2024 11:55:03 +0200 Subject: [PATCH 14/16] doc: use bslib with golem --- DESCRIPTION | 2 +- NAMESPACE | 1 - R/switch_theme_button.R | 32 --- pkgdown/_pkgdown.yml | 4 +- vignettes/topics/bslib_input_dark_mode.gif | Bin 0 -> 27780 bytes vignettes/topics/bslib_toggle_dark.gif | Bin 0 -> 32575 bytes vignettes/topics/sketchy_theme.png | Bin 0 -> 23125 bytes vignettes/topics/sketchy_theme_custom.png | Bin 0 -> 23668 bytes vignettes/topics/sketchy_theme_dark.png | Bin 0 -> 21566 bytes vignettes/topics/use_bslib.Rmd | 282 ++++++++++++++++++++- 10 files changed, 284 insertions(+), 37 deletions(-) delete mode 100644 R/switch_theme_button.R create mode 100644 vignettes/topics/bslib_input_dark_mode.gif create mode 100644 vignettes/topics/bslib_toggle_dark.gif create mode 100644 vignettes/topics/sketchy_theme.png create mode 100644 vignettes/topics/sketchy_theme_custom.png create mode 100644 vignettes/topics/sketchy_theme_dark.png diff --git a/DESCRIPTION b/DESCRIPTION index 4fa54436..05eb9b7c 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -71,4 +71,4 @@ Config/testthat/edition: 3 Encoding: UTF-8 Language: en-US Roxygen: list(markdown = TRUE) -RoxygenNote: 7.3.1 +RoxygenNote: 7.3.2 diff --git a/NAMESPACE b/NAMESPACE index 81363134..37bd5092 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -76,7 +76,6 @@ export(set_golem_name) export(set_golem_options) export(set_golem_version) export(set_golem_wd) -export(switch_theme_button) export(use_external_css_file) export(use_external_file) export(use_external_html_template) diff --git a/R/switch_theme_button.R b/R/switch_theme_button.R deleted file mode 100644 index 0ebffe7b..00000000 --- a/R/switch_theme_button.R +++ /dev/null @@ -1,32 +0,0 @@ -#' @export -switch_theme_button <- function(inputId, label = NULL) { - if (!rlang::is_installed("bslib")) { - stop("You need to install bslib to use this function") - } - - button <- bslib::input_switch( - id = inputId, - label = label, - width = "fit-content" - ) |> - shiny::tagAppendAttributes( - class = "golem-switch-themer" - ) - - css_file_path <- system.file( - "utils", - "golem_button_theme.css", - package = "golem" - ) - - css_dependency <- htmltools::htmlDependency( - name = "golem-switch-themer-css", - version = "1.0.0", - src = dirname(css_file_path), - stylesheet = basename(css_file_path) - ) - - button_with_dependency <- htmltools::attachDependencies(button, css_dependency) - - button_with_dependency -} diff --git a/pkgdown/_pkgdown.yml b/pkgdown/_pkgdown.yml index 262ec5b6..6bb07cf3 100644 --- a/pkgdown/_pkgdown.yml +++ b/pkgdown/_pkgdown.yml @@ -43,10 +43,10 @@ navbar: menu: - text: ------- - text: UI + - text: Customize your app with {bslib} + href: articles/topics/use_bslib.html - text: Use a maintenance page href: articles/topics/maintenance_page.html - - text: Use bslib - href: articles/topics/use_bslib.html - text: ------- - text: Backend - text: Add routing with brochure diff --git a/vignettes/topics/bslib_input_dark_mode.gif b/vignettes/topics/bslib_input_dark_mode.gif new file mode 100644 index 0000000000000000000000000000000000000000..e63c2159e4eb0d2770cb7c4f2128aa2c04dbb128 GIT binary patch literal 27780 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 KZs{G{m;VQlSezaJ literal 0 HcmV?d00001 diff --git a/vignettes/topics/sketchy_theme_custom.png b/vignettes/topics/sketchy_theme_custom.png new file mode 100644 index 0000000000000000000000000000000000000000..ea343d6f7c79e9656e7df6adab36169ed2903866 GIT binary patch literal 23668 zcmeIaXH=72&^C&Qf(1}fdbI$GH0h9l3W9)uf(p`$H0cBggc6Y^(o}j2DgvTZ=|Tt^ z=_OL66KX;ykN_b-k}p2b`#$1#ew}}3oh55!WwY-+yUdeA62FLzc~zpJgTE_m15!@=3ro{sKzbaE==eWOQg zPjP{ZLPFPXGQ1B*zptS)yvZu4q5NFuHhuURTfq;*$<61?PnC&tG&!5bTXTbUojzdFH;!p{KI<@-KcL z3Ojv{581?gh^gr*oowil)Knn{FU3&0SLviu{06^mT$@{kwiR`kf_QP>>gCtNbTfjy zDAZJ*P|$HM4}V*2VY(0M&n>|L`Tnm<&)-QDJa&HH|211dz~k4m1)OoP&&N(|XqX(K z14MTwU!=d@r@k3`)$;sI)LcYa-gC*bLb3ZtOPrk-gTi0cHZhf-z5rOv;i8JDMMF2Z zBnj;p;SPU@q|r0t8HeXabz)T1?9Sxtlq=cMHcw9)zWy%BkiOWKK4GBE`m$V9Rn$K+ zV*m2qW&PK?5hy81q>Mu($-I&#yjw_B~M! zY2NN??yOULC+DJd=f0yz#H}9B6shx0kurui4?DO4>><&z8YzhDbIZ~^Lt53u%2>5k zFKq*$5_JbrWl;)9h;7L9vP>zn3C{k*liN@Kcd;BCB<^%6w7(_ z`?t^aJ=+vAYU8%OS@KfhEK|hw-n+a>OwoduE4fD*FzQF{9=p%-^E%>s!P^r*&w^*6-DxZls%hiu)G4 zF6Mvs$X#zyWgQ;-NZWUSdtX0r-lx}jW*XC>e(vp+yS^XT@2f1ye`MX_-r|b8Wz>7J zl53P}HHt-x@T2pGORrh)r3K`I=H{hMHy~&eT z=kp&oYj1I0jAc6)9jU=#%PE~+8)|Z==z^uNs&Hd!Vq*U*P?DLbNRpYP@l~+-+DCK5 zxZ~?H?csCUFD_|okKO+Hp75UWJ@N6ik*6#A@j{NTYhJmuakLw>=gbx2v3S>j#(iay zAxV?OPf|Ebe=FzPyQ^;>8@&(}xm+V!dXDM%(c`e=<`GrL^NtssgPhYmSNP)Li?1)7 zUznXs5VbVoHT-s&OEf@iBiTFYO0vWi=DYXqTYMBr)|$`&YQXRCy|;0Wl$94xPccx@ zTz(%XDt3A7ik4{UU5N*(pT@PcdYKnoAyPM`Xtus^qH9 z4fB`5J+!LKtZPO}y4Nz{Ves#bJt4z4P(nR6IqH&$Ept*e*GiRbd4aq`N-(eemB+ZG zMW1hrtd27CXXh{Us1umyPhbTy)TZ9ee)GKyUIf|Kw$$z=V>3)dT*g){3N+!t75w2;5EaZ8!wuN zQa*@lTX_3jwx_MPUGa|j}3N)7nqpUpd@ilGU4~t)7v~Quu0<(HWZJ^3Zv(0CT$2pyaN( zkZEsu-(yTlvgGIB&rr(<%Vx8m)uw@4kw3{UCN3RAH(h3js*C$AQY+j&;kaES&vPC_ z`SEe5x^nB;D7{yirrxsNgYzf%r}os{N`gu*)_^Mr*v|sJYR91~;K#RfDg#q_!^=%;X4HUvga@cSn$$SXNki;{#PD{P-pAUTu@$9Imo9wiC*gDqTme z<<*y-8(~jg6wkXDO)gAq*2Hc7+y`+5!tP9jxCKlqxK6|*TL7}Ka#KXS!-1a1U zE0*J|Xi1{DN0HPA(U0FBIy_KSJL~mMT|ty*?Bwy$g99 zC~huR%%{p7Sh<`wRE|}y_=1N(f+=2}=8%1iq!(gb<+SI!)r*A36PL+Gd)yzG1LE$^ zcC@_8f1lroUBIsOQwqjRv&^_dHD}B~rXoG|IXpl~RqF1|nTXKp zJhuc1O^XJQ^K@QM=b_Y6%Z)nk^6Z}>Yacs*$_!z3CUf?7 zc3cgwyBt`_ugV97b6@pZuJasQ-cD9oQBhbsIg!oqDnKsT*7z8Y+$UstYQ#cP!|&aI(b85^m}-k*tC8Xz3AhnW5?(k zJ{^6^%S=~wf^O#BA`GJQW)b)FGCeiAU~lbmIpdqp98b$0&@rGHtUZqP^_{0&E~oPp zeU9d8l9&H1-A~ouT1tH9dG={ovtQN%l%Pl7J|=p1lZm#YiWq;uLe_ANh%D<{5&kO$3#K#4A-bC-Npt^^*y`a2=l!VlI z)#HMKf&lNw4$6ian*T#i`ww{D$;Zc2SyB=V21|ftBs{zwC8d>=lq99DNnX1qPHQ0! z3UK$a@fUXoUHG??|LsS^9%Se3?CIm|;V$^AUmIHwUmxK4^S=iA@9*Dv+WR~I9?2c_ zKg*&mQ1aIkNoffw$^ZJMkph0zD&KYXw|9M{;p|3Z4{Z!pSs8i2Kkfe?PkxVhfYRhQ zrIM85LCOP9{%^_$AbW3h4>#J7KB~WW=6{F}KKvg-faI^0AK=8lZ2qT~#%I;z0LlOM zO!at=j&K4U-E}%`jT`s<53NoxW<74V5ZP(#@^))6i+d&OErb7dOeB`q;ga>pxhU!s zOSWol#Kd7g=~m|>B2y3jB~6Zj##cj4-XE!KySi|lvzWc^m27VMVtJqcScxmPS?!wD z!-u{P!N$INh%^{(FX+n^0wz#$CO8*MXrI(*c-|9wnDJ=4=2N;u^bAa=1h4;7kU!?5 z04JvWQO9)lP-w3J{lR8Tcg~&SEciUE{RcIDF5-_yr_!#h@36#@lLu6GdMiCUJ@V4E zO0tj3)>YI8S!LAEBT{BXh=FQtVbJ6mQcp;%24K$fv$H z_3IxZn+;1T>yN(oj2dPHOyQy)0QIe1VHR2Sdnm1%pCf~-N@)j~mvAf8h$)uGqXsS z(W|h=W{)s~M}gjiNa9$4%))B7x}m@w0+{+JK((wsi0Y?5xm})(<@z2yf01z_jwln* zyRp%&A6ouuJ@faJLS;;>X{?e8+&-Gpv$S5<#H?a~*JEh;jPX5fx6HSzK_Y*kihlKy zZKza%ew(qab#)EfT+nL+ebZ4qAX10u3$$tdl&e7(Tdv5%{dkD5f%>mqlwL37`XCUp ztest>!WbtESBh>@gv~j=bM!XzZ40dhuje{rzd}s}j@K8TQ2c{a1qRm3g*OcDM+wU| z<9OLs!r~IAvKBU(bBNnXHDM#5&L0D7GX?TNfGs@<$&{_Av@q6#n!-$AbH$29dEw&P~T03u+`TPnPkVlcbdRezb1ZI;QGSPyC# z@Ax|o?_m`a{n1Ukmm=j#-rX()LxEJc-HYh>B~@ver8hOc*1WOt2~yl<=6jE;)1%aq z*xgCpyiTkJY5<~Q&jgvnc^eJR%Qc|Z1mq7F=&SWu9?%<1m4aonLWPBi>c(ppyj`o` zAknSiJ@?*>F`Sup!ELG4m8as;+Mg&Rr;L(U2PG{`_5K$34a*VwZNAZuyfd6)Jcu_of+bY5%iH| z{2bUR)t@%(AO*g`udKY1w_G%y1Bqgt1F5Dt@RNQ-_NkPAZ^9>b3Fe zB~^s@!(L<8^_(&LD1!;}0`%8}JW@ScnRk1H_pFVANA^#x3}CCkYh~rez`5$_jZBB< z7Kpa>2bIM%I;Dy{GL|9_AK!EEg|s05%wuPCpSr z&dkZ}5mMhLpRme$hzijU!GekbP_9;E*4Mdw&5w2R_2CKoy3`F=1MY4}uszHgyX~D2#w&Y)PG6sa z4SDmzik>Bi=~^3#1XqbdpheA@ku%eda8;H(FUbFydV z5-MVJjf0HVe1k$p*g}gCo{LVevwCmjIv%rg`01Y_Reb}jXtccWJPv`EvoizYA~3{< ziRkZA{hZItO6omHp4&eaapR~Cn~hAuC%f+5fV8!@^OQafoTHy<18CpX{_+pjKjdA| z^EfaTxlYr#oz5{Z5O3gbpKjoEpW#}KA6c?{}(V`)j`({vOKiYeDt|IP4 zO@nmzQLL%Bb~4w?5Maz@W)5zMqqiHVNsQFB;051aTG*jkVPlDV z9o$x~5`oI*Pss!|N#Y9@RD!w#F4*x{qZzNe!a+^N?;D!U z*dn{)>yi?yxZjo2p{`%r7P{)RrW90rvOLx%CA;bZNq8_7@qB*A)@t*74`3aP z0e;ZFwR|Z_(LS@AC^LTkP67;^1(ak}3EoZ0Rai3x;wm&lz5Lg@)CEp)Dx3+>`fWFw zoY@s4niNky>P!s^NM8j>$*g?k+1#E(Hvk$yls-1J&SnG6<~tJBe?E(@sKp+DB~y08)o2h9+)vNS__m{h{$wg*BWwJsv-?D zb#}7@OHYRwqaY3y%e9E1ZA-b`AWm63|I)bM#_$lm+wqlsu9h@K;iw9Sa#GqBNMsCu zOY(BT7RzK>7`D-7I2K4sZ+2M5@^=oO&x)^M20qK>@9OsDjA*V3Hqh3}+4X2C(2s2O zkMzcqciu#ET%wyNlIsW^=o^;uk4LM~pgOeC7r()Zd_KrZWBXqFGQe+Fx0TB@&q(E1h@suPoMPeO^pJCb#|~)7vcO;JCyW!89yYdb;UQKv za>~Ej2r-^1-*8=Wi$DmG?sw|gJ1P@!ExVWfYe~iabwYLc=QH``vfokqVlDtHG3A zyLZ>p`yxboO9B>~W%nO!XFBCy$)GPJg+1obAs-at`Kb&%^CAJJ*2TzT2@Jvr=x0~^;(4U=K zA6?+erVg0N3w)UlzN*r9mD<}i_{DpgBUP$?`ntz~@dZ7(kI*K-qE*47j17F1J1ngj^y9?&{QBi$e>Nv?96ky+= zHAvN5*Xw2AM&wowoC<8^?O#dbea+2ANb(gD5ym*jn*ovljNt{bJippVT zUC6sIw7*x0%T)uc@WoS0r_bl zAe$%^55Ydv>eQ4)5#9DQZEriFZ9k_{lG5*ql!7-4)jVC(G7%qm`&5F|*Y52LC`pA} zvvQRMEq`yH_!%XP#uWK48pltvrgn3_r@;?X<>kYZFn0IA{+$Z{-buoDuZedxGSy5O zdnM!{XKGZV7~?>FN8?U!4&ov)k`jZzW#)XOA3U*md~l*r}4(-WvtK#FZ~f6 zoUMqs1$r}|1-$nMyX6`D_&K$1cwk?-L~W_|ewQ{Ix2R~bIq57e^WNRdd?g-pB_1%V z1#&XSajr^W?B(<;F`i>N6T@~jke-4#b?d9C^!Ys{)DW7kW%tL=&Zc)Ex z_bBdKxKB(>k|Py=cOYGzl+|3XRgqOPsR?i#wyJ%z&SsYM$QLw$3OjdDRF6=~2WBF!~KG53# zK1;koC;WA(j*BC+C#qd&>2iTj@oEeXRXDYHX>1%w8`|c)%_kK!VD?`eHnNZ zgqxl@H)*m)9=?uw$ z*Ru}}l3!=0r?+D+e#3Hb_deXcZe3J%?|$?_b1BEf6f0NxO!*+o-rPJCTK-M*-lc<} zX+Tg=YVgPLrN5J8I`#j8lcDLym*49!ES=-rG{XJxb*3F}BbpEAvw3;a%){bm?0UnMFtp*O*OtB*QK7+CtYhGR8S-XbJ&$o91g+ENyZS8ugX&n*y{m40PEi z`B`a{@o#Qp`gcjV0N?ro71(b++38r1g?eG%QeR=$C^12a*-4r}!?C*AW)XyPaTb-N zq|t-b?Rro7#)b#ucCI0i;?JB|Vrao19jQf$i3;QiH(VupnkPzRu8ecKj-j>H)0)?3 zzLQ)8Bkao()}yMU$`=<%Dip!)37M5*UT9LO5_kyO?xEt$xnw0rS?CSANAE(}TcWwv zG@mAKtpj;kYoE^}yDFE&u1vyhzZd{|FUOb8YWzMu2}eTR3?MRKluAc1^Lf#1YZnNc z2y2Ywx_yjg#<+UF#TOU+EFU7?vZ%lD7S1-jS;m^DYegI^4O+J=@KjK0C{=y!fTNCi z$5CKn1l+zFyDbmvByZAGElmK#SJn1C_taF#m@_&Y?&MY3Kpa$M`pEgK{2no=`89~y zD2Py+Pg`+3$Z747IWXzn{57z+z`UZs>Hi64(ooUL3D^24X~-MHlWME;)Bg4!7Ii4} z!HSHCg%KXtQ;S97DQ^pV_Y~5AD$EW&dSdgz`bzo7L@~;Bsh+K7CCHh?Mj$J+;quU| zwQ1vmu3u2$YF6!jcxeyO$9=8pi`tfB&lRL$4JgF76+6$~$-eppSq$E}J_?%UFGeH`}17^MzQ>CM} z_QzM)&63nsalZKVbS>44z;mog>tArQYOuo|cG3a&36L46J0LPjPysyq+h+`&J+^{Q z`@#$l&!)vS3Ou;jbt7iDS{iOiTJ*aZ`R(+6yzZRv;VVnzC<|7iLj-&5rT3I_P`68~ zjkE*@HEgP_!qQ4LhUjI!?-E&>Vj)7x%@lz}Tk|A}-eUETDeu``WP9r#JfBi(8xWgT z=7gP|E`rm-3{bMiHOXAB6?tw49^k6{Z<%*2Ymx|=&E9z(at$b%D>*~v9OOdDVI`?D z0cp0lY1RVt3?DMu72DIvHrF6ZgvR8!euB=A*HMe{cDGwza_>oqm+`%KoJ~!xI5* zxD!!A`wTVS_4|J$O>77FpX8u1muh$w2!Z7X}osI}tj!7vZQh-iJNzN8dOAAjfLI0t=x8FI6qp9Ua^u%j*h_B!O3-Sd{>iw%CyD4fhXkL%BBD8 zb(vkL*5cTbcKB0@VWCg>)3m1dK{qDXPd;X$ubVFbuYZvZoDA%vNvrFUo+gvnp^H(k zM)tp`L2Zs*>i)V>G!8qAQ0BcdvNFD@LO(317FFv#9itHZd21{p6MBI$l}EQ}IB*t~ z7nZZF!ow1O%8dRt%T+Ts>DiShAuaAwpzViIycKGZcZgL4n7x}~+a zU<9?^)76Sy8o6`x7wA{KYTJ)Ozse+Bl)>pl<&Y!IaVD0wv+`LB4zrEzU@?xy%1UEE zzoIz=Gd!gfus^pqH_KE0OeUx}4ZMTA*M1%SwHQ-3m#Im`>SBq*>qKEAwTKuSY;?Ktslze#cA%moL+WA&2)bPo6*3=6%&5Wo6j%(+T9YE7>ZJp;+c>XMz5qIU2N zeuHw$S_UVHF^|MJ+^OU(l(3~7Te8N&)#<`V_kjp8R5wQ3;~ zEUEtUt)@13P+~=84*)-X=7l$N$C>lXGU57`Hk*)4Ob>5^pUDbL43E2K!W{u;vYsxZ zS%UT(^M{R&k3oihc+3!ZZyKY>T|p<{(>+*lh_Sia#uxMb%IOTYp)~w8$XG{8plEK_ zYBhKNme7~ z4J<)26x?x0dgNEUIpi$+g@M+={rFV)nKQWsUN{j-!Wo@Tp#whIhdb6Bft*8ukd_-* zMFkb}+du)X#F;tCAK4hj&bw_JmuF!x0K^BEs9QR?q?D5qwE=Vty4~XOy3|EHfMNT~^r=?f^G8ARtfipWYMFFre8pl0 z=CzF;qR6q{eljG3lQH9gWEX;72^RK!etyK9I&VHbGOoMbXuf8Jz3yeO_I4cdEyel4 zqNMplzt+zzy)x{=z5QHN9lB29>1D%~jHrzfZI5o#G$jU2PaI!E<0du^mBV!Zo;!G> zBPaZvI2%%?7K^s8uu- z5xq3>+kwdX*d)Q&vT)1!ncY5Y;lYS`f3Fl`tq*?bZgZ>HJT%0Tf4bRTJFKpra`hjN z-cdId8azrn)G71b@yBB86bf9GetiGT%@cS!3T{`Pq=oyzjM3fgOP);I&4uOF4q}&? zCH=0cMG?7dq^o;OPbToXkz$}Hz2aU`@R8CD9~Nj$@ES7q++$G9qC_gJMvK_dh{3nX)I4Z0( zaYn8(tc_~K7K~*{G=ByD>t#wBuPGNW(0=%F(N6_Pk0eAfbN;YF@dv=+)qoth(AAc$ zck@2pE|5WCA|K9|;p_0=w#9=Gt%QYFj{CQ{I(QCUMhigJB(W%ErL0CEF$?3%OaMJU z9ckbf1zuE47dal6j^f)&XORSvrK5JnAIg=?a zcX}YP)i+^0LoYr)Ct^j?JY$U9$m{MQu{znc#4S|AfLe&os;~9ew`_I!jRfSFRxDX( zBkkqz#m%Q$XNw$->Gc4IQxQH|ZJE{UyHbFbixd(7K;LzeYc*SdMx!JJrh=K?TJ*@v*+A*I^O4s6J4_4lzJmbBdH7EyNVMC}DE zxFt=tyD5k8`;GQyQdEytm>p>eMxKHNo>w9BZuYN3rFcQ@u4SrOUmofDkUua*mdn9T z7ZJxdLCcJ;ke`p1=Mk?AQiS?4Rq?;m2(B;F*N-D>L)2QyXL49$gkEl#KhpQUR9l>* zv~dMGBCv@ia4aE_Q*s!t((W6ji@h!-XJjH-G&{L8o|-n!b@t=gC;@BIF}~-CG$;Sx&pC|wdRI{km#C**qaj2#m~@39TL-57%>rJ=&bGFl}Y#d z0+~Vaaq3&@rJTJB0k+xH`!{DFo5U(_J65 z>X?Y-7#!Vn7Kz<%z9_Y9CPL(=dQx(Zh^VPA?bhWQOY1IKUmAl=Q3K|x)5fb;Y`TD7 zGpQ-UC>Kjs;Sz;aQ$1_m$SrJ9`y`v2;i%KFIzKS$0G6ye1~?w-wHdL)psw1A+HdAq zzpTF3ayR=P%8G@<2=T)pGX9K|LQgpNJa5P#3j1>B!KJho&kjy*E}N}&8R!**rv#uq zJ_$ZV{w_Kdr>jbd(VLcoJ;)mGFnt>Ec6VAihWz<^3oRff>Y~%~qlfb$H{2kQaJ59F z{ub-Rw_*=KK1|x{4x%d~Bg_)^G9Tfo&4L^|A*g2^s~zAy%1h2PtjHIs4$o#PFq0JT z%>ojp)Ue8>l6v=G7rI?8!8#sN*k=O1&yrU)4&_4R?e$pr+_#e_NsSktrnrGTNOPh0 zEJ>N2z-F0NbYOt6g1}_g4iAPoN?YNE7w4%MFAC2U_&AAcEUyz`^Z9J)?-2TZp|bKl z%-N3vT+nv+##0K20xMY<;l+I2JCXbVcdw;ar|AhGNBd`~0HrppTkyuFP1|AuZQTF~ z2%p`}S34Yu16^o>RsT2~ca<91>f3SZ+pqvUL8ONH@O1!>lBJPne{?TT&CYw=oy*i1 zdkHMfn}nSvD0CpOKTJeEclj$H59+2kBOGzT#K?)$IeVy?a|=;Y{SUM*e#Y!afn~4BqV^~*NQ*_x>vfl z6CNYRY8v$W4|74)ProQ22Y+w(qV{I;nVEYGCz_(&cTTIv>7r~|K85Mo$g;RX_%frz z*mHKokr-`x^JbpkswaUt)MCYE+y}{~PLvNeM6*N{#YfKSJ)&z=5@}3om9fL9E3CB?_)z8!L0|8uqUHW=XP6C5G+t|Q#E?Z8jwv#3qv+4!-=!2=FWwj%X+cWQzV9BI2ztx; znoDSp0eO$Zor2;07P!oXP-0yN=>r=1-)#C`?Wy`~F13)9R%##$y)>9LSqj=8& zeb~A%Y{C`7SO6QENQ_Fu?xCoqZ;gf7NB!>?O)4s#l!qzlDXonChCBfFBYtkTpR8$i zSS1lK88*2A*#24fS*c`1fPre1BIf;>JNVeN{+pwtXt5#Gb99?SHL4dKF&3gQw5Vs# z-tm(>^uDTL+xDbFR{b)Hu<}kJ*^%;YNOF+Vyl(2mV5#pjWBa=B-q8>}R#T9UB&)M| zEt%MN6Lzkuh{u1s0)IvTB`)NmYT(DF`Dwo44FJr!tXE>b*@qnvhk95py}c@Z2574^ z-YhjnYB*{~3k+_M;1_BzL%m^{!3GXI5g2@zg&zPde>)(}(|s~c*6EYD@YZEucEGSJ zEii8H9Gy1j_%fCH+@{!m$B_b08N2B4abit=VO26zJW^gOvo*H7e6tl>jF8$OzET_C zCrYcTPNG}^F6mJjG|%GgwA8FKlICcs^^WlXN8nnjfFK}O8DSD{YuQT6zS;+Kn7J>L z0}S($0pSY5=G>7hSJTFdz&kAiz#tGMutAmxfMVAD)eh*Si)DeK(rQSP6w|h8!D_Z` zsrdLs4Nu;vR_~=vfzwwC?#!K8-e6YmmEz^&VTuebtoJw0P=RRa5F1^B$V@in-*1IC zGhOdY-LKei6oK?w)dKPWn=-I-D;hYftEaDV=X0a#n%RN(P9KLvd9<;uHu(Ct^R~Pj z68mOR#L9*8XptIWb0;-aRlw2%5vrCfaZ-MRj0l-jrPF;P5@&p0pk@QU(ln{xOd?xD zEI$eWT8*wgb5#qq@22WUF@h#VjZhwpOtkBIo~!{>JYg7(zRR;`r|9nA{BmN|6*JO{ zAD{lAoKo_9d!_Z|tVoC%CFcaPJz;R0MPw-2)68KkyKjsalY+9-j_aMAr6lZs!V?=Z zkQ76fr`_!EzPur2*xRl#bOO2lGe9St;_&XR$$5vhM)3TbEGin$eh4H1%j~9hyd3=O zXTJ|G@t~jm5@GybRCkMMW#;9;_=w!`7|gc*58Y&rA3PySC?PS(u6|{*BbPCM2E=5s zDjM(Y(Sx1NM&_yDQwh8bwkD6mONQSmT#4snQCoT6{HgKN=AfRqbw^JX86_I1lB=wj z!UK0YZQDt|7O>y|MJ3blyuPUtF2ep;!Zm3<79EQAv|pux<6(AKcIrdLAof`*AkX zsx`kOoFDF44?#FH(aGM4y*&QU+!S3fZ_mtq>Hg6p-V>d!VHfjK&dsc0W*Pq_(xby_ zX9&+hfb+1>^1rCCNwAKG<>pD>&b!_Fl&Myom(iYOK8s?y2Gfyj2I~%6<0#Q-w|!nS zmL}Q;f1=$`ov0g5ALrRpaNZ6jVzrJ(y|u%>Wt}6y?$c{8_5$=@J}DX6j~}s2Fei+j zX~V7sYjMffQAQp)lV&74k!DsYQ3VvWS^h>gJ^F#H$)fsUhA9(%+fV5?FI>OH>ewGM zWPTx}^~Z3#I7B1L1_HWms`l{?ZzW~>z2&X-HH@-`3j1Vq#h`G?%5!ul#`Rii;5EC< zhx5Y-pOK+Cd1XV&{H?2puc5v7PNp_V~tA=}ZvZ;U=@{Btc>jA-{LcwNU>3SQU^ z(zG;_khF!qYj=9rTAF_95~NB#=yHxISeVFpi}ij{0Ef(7evfy_3-HV8HU4T`kSv97C<6t5kv)#&tjKFQ zS$hDFI%YJj9chu#Ya#z;0xgHtOQP%(N=mgyd_wiV$Plg2BYG%wBld~Dg8J{YnP2yQ zr#Qi=zCZ5wJT;Fo#X8;xec}2IVHlWJU{9NB15-*g4wB30T(<_~X7qO-oPjlwfuUuh z!sm~RyR3Wk^s`()v)m*9i+a-v^&)~&Yp^`A-zS8&fY>vqI8h(4J~IF58(Lu)cqr71 zc-7*MYeUDRr%nEvas`;fpWTBg{9c?2C%|G%A>>N-8_XKlU%o7985 z;1o6AfP6@4!3nK=6Ni_Db~pT~Yw5qa9x9_{J(h^Rb0Wr(rFCswTjmZJT!OuFkXuf) z7NOvkThXoVtK2aWU#90{x zO4qIz`D_j$M_!)|6ObSDuiaA$QoR$YZlo1I8cYP9^LaryzXmEP+FScXGOqwefs$F!sUa>?#pocep|~dAB|)r+a>uz&@n5OPEY! zrwpmxp@|J=i2QEd?hB6hKT}mz@^U*1E54*)LrB@qi&0kTM;*oAldOWYmO}OuF>Rb@ z>Nmd_=TT%N^qgO6bu_N#^o{dSpCGIBxAjhH1C!CiiQ=tZ2blX$!jqY`IeDcZC2#?b z%P+>|r3Ug`kir&2yX~FV!$C&#E%p5~(49ydlNDA&9I_^_C#-J1TxQ9*3;tR<)|aGW z^%?>VBum>!m&nyF6jg378t@#C&nM%21xf%8Te+M3?v%=3DbJa;&vnp&xAL}UZ&+w;!}722oA@}BLi2CK5_ z0t*_lNFD-X{`xW(<#4N5n@_D1GhcFxK}00xL3l5IjW#hI6uGxl7H>wwC46epRf0pxyYz5I|OQ`Ux5_PvGuWH`> z)k7;vR^{#tV9yDlzzGZr;EJJ~<48h(_b({}1;VuDP)|l_Ix8b!sLGi%)+i-Tnfuh? zWzYUIsK-Bl;DYXDn8%8h?>$ozmLm^?BfoCwnNg9iw(QU33}lsHQH$YvM2oEm5+E-L zYSit@O|sR)ju>TMT=2y$%3kOeC}WmhFdx0xt>jgI2!BS8=GyZIy=HTtWwVEQL&^oJF1A&Iy`s zFMh>|G`^69ePq~~lJh9mvUzw=b@n5Ee>Sq+ZDxnp#K1l#-IxP9ovDvG)AReHl4fH* z(T}mjmdD!^ML4OHH%%iby=($=Ob1Q%{VQb@PpiCh_r(v^o^sNu{&jBkpk zpA{UGt^BiZF7dM5xgqK%U?c8_zb4hDR_WjvE22`GCcIs!AAi~v+Iu`&q0%XX3%rk1 z!yb)u|1k#|jqU%{-0D|z2&db@wF-JVoLJep@tx8yp*_KaQ?2mT$F4a9k^*{029zpI z;@8wLGrufo>O-sTl|-d6>4U@{9{zff2*abM){WRU_y{l8s<$m?$5`iQ?&btMcmgrc zoJ{Z=DKYpD{m`syzYy)ct=iog$Ncmf)yrF|{>zIW=5q~O9v&*CJ`-^l^}yG*5Am?z z{{WwkY1ikQLJx<@tiZ-u{#@p>rg&laNQAe=A8#8lT;ZT4xp@fwJjjCUW;AqShVS@8 zaxkfQw)#@3`N6vT5`t0>(bqp7NTR0;t)_wG z>bYdygRJeK;j#{%+gk@!>5r7BO~WY--UmV9-8x!UV8G$RKhWMN4a$$bHkLTZ-M>uy zmm7bX_^+7#mBfF~<=^A{uM+&L6aTdke+|pOdh-8shGjHPNSuz2RpQrg0sOVpG;inn zU%2ycXzDNA`6mt>`WG|)3vK=a?|)+O7c2* zc$a_=KI{q+@J)UCQ%*cQ(n@V&Aw-hL(Ed0buFmCEbP5-V9W=j_sv!8 z-7xG8+gG~v+~)(o4rbz$xiTW3hWw=y|An70b)_>Esi}N5wvt1N!zbd!3Fk4VM*Pu> z0RjFFA=`*UvvR!giQ)HcG#b~AD!@U4<4=WnI=3k@o+|sj;xP#Ok|5k+*5zbouTrO$ z#bViWV#ogCNxxgNz`bV?LOQaSY@H>*evuF4lUrpL*6!0G6l<}cqNFzrJCjTM)JS&| zHZsK1T4lbx!=zqk?Rm?;jn1qgfsMZrlC-J(Qg|n|nQ6o@Z=jPjskBd?Z(-dedi}42 z`m=NzB8xUU!h2UQxrGR$jqpuFY|=Q5?)xf++BNv(%BQ3xc3IxlXS1w$BC+fHm!qnq zDIS}n_mN7|)zqRVucpO{RTUjx9bPX?$f#~Oki~oFfv@HJsCY;m508~NU4e0drC2k&2>FfJ1?TSnN}T}=-akFS)zLiCi0mIq%Vmhfi?ArEnJJ5ekdx}Bne zE-^$mK9?2R6a^?AU!%Aur>Au5XV~6d-A-C7 z*|J!Xn^#`Q3~Jp;yb{U8`H6Od5G8k6i$srNM5a|H{{z_%;Q~58Jd9k&5AkKPs4!&# z^3f1-OR^M_>RG%;e_8y+{<&w?=@IcX5p~C{ZSA`2EqF5_Tb~2BxqWV4*7D#GQ=tP# zSbdbxZZEj4N1zgB@}^tv)(0*vNCB0e`0B%=s~B1g&D$rsgMWRZnV{KtNujv=qvwa? zpy?p%a>ug59_ya7m$V<@DZSjc0&BJV8n+*^ktVz{j_&$;^J$R)c}h=8W6I-RMII{E z@3dC*6+vUqoCLjZd2@S9*E0AsOunUWi=KCTq@T{&f0;V!*Sw&6eO+^1cAaM(!xYmd zr3FR#3;4I=S?le4Ckg@A&#tuGnh6gMWn|~Lwnw7z+>#)xBEBNS?bQ$2x+k|;q9|`g zM#xiJ-M*h%7iy$d!fe4N#nu8#NEnLqOf=5bcJNdSph#l%2DjYH#irgf4lJ)r` z&j%ab*BtDeaE|g@S4fFSGfB-})R5+q=HK$WrEsh8wZZH5*Y>YXZ^dv}=-$!!%t^!H z%e|B2k;s+A$3?ECt!G}uo}`GBmy~Z-qtAJ2AMxNJZ)&opxWZb_TMll{NiIc>axFf6 zsp2U`#X<6ACqJ%0@l(Q6hSQ!qZ$(Q)!$eINhx=Aih4KUqznVXJAD^#N?qP^}!zDLj zD*ObJ?~t%cDg5bO<=Y7 zz#O3tF>AM1pRYL$7b1K=st$u!*_NqRYgeL|?N@kzn3ftAW3{s04-9MmoXMUkleV>d zcFn$G{C$^Yr`Fe4=M-ln$Ahs~P7Ai5dJ8@;N8cY!u}`;ZnyKp{d{`-@EXXNb4<=2U zNF!Cprg;x^^m?YVzcajFj)=1PCfFlbEW9R?pGN%7^?|Eku=NMK>(-S+ACdEoxf$Rh z)ZHFM0~Lca1G-X^l4;{KqumnK(yg&r=K!bC@duMlHNrKw#uzG^T@`CgE#c#3eVb{` z;mu!K`h&(E58Um4nkC1d@NGc=E?6#Rbw~0JLNwF;WZh;famDNN%2hj|rJGC4{c^kH zOJs|T@1$ox{`w5zgsymk>%P@9cx`wNdH-tAuaopdK$aQ}>su{ps^g6nja?;pBv}~9 z8LTrkG94ub{691WG^3lunv(_&c&xOxm1WNcH@LBN(2-FE!LwU(&FQ1Wl^ZMM$VPqk7ASG&FpEYmSd=!xmP6tt2 zQF~A&^93+i-KrAHkxZm*c(A9m{9PcXV&iGd=eM78=bW!6z8ZV=?p38yd1qK>3&)!R zVQrC*BOhN3_T8^bd6iO>GWcZrjW<7SRLz^dx6SY|x1HBt5y=I-%H|&4oM2$RU60hv zY^LJs%BL({E<+z=(zo&lJzwgY?C}2zU7|+6yv!Fy(Ef%H_B`zQ2YJ{R^T-Zm7v(3) zbi1B4%ek_qx8XaWx03R6oqkn#P-3-jt2Il`KaqXnq^vMcTEN>f7+mullZFwtAZ_F zSbQ}dsWtJ(M2ws|8aZ|&WF3DYYDxE8M|v~xY4LRO-5#s4G_<~(El|GQv66`8ar*?}2!uk&Shx#)`PeuY?%29xd+zSdtKL*+O^O|v&(o50$e_BgHR4$5D zH=zCe0?*vt%=}JJ{O+w&;@90iZm{gyAURKUk7*0Yecx*R>i!m&my_4BxV*SIbe2D9 zl5R>HBz#_T6t$oFv%1?34!>dQX~NzQ&Z3j#mpVU^oqrKpo9i6Ir(oXXX+M|S--8b; zx7exosLU7%+AQiB5kjPwWwi7+O?!2mDOkTWSL{%4Oe4?O&v*;J<01?d^{(+6*mBu$ zU#oYUT-#3)Ul$kIBtmYqPzP-VxjMPd1fHFKATGQ*E!FGy=hxc2dpPnMKm2 z2YmQjqT`T^N2N!nTRrX$H;*z$1Efv$l!7SEasXsQ^*gw}A9b9@M8_4xwZr4#lv}kehJm2d_IUaM-kwkl-~H6NTI%$EzX3oBz0y z>8J93Wh;b};5;(_c$2e|_W=Qx~@AT#1U3G#sFUIryrgN!q2Jn%8Pw>y(OFHi_{d0{EyLj-iuAH(m@V~CL z2N>+)`OMYp>VpXtV5(7jJtHq8bu}?-S7*MbHm+7+J|Abdiy?RtK4QS7GuZ1XlaI5L zi>H{6BuYm zcR28qS4!!UsP0-UqFywP>>gRg4fg6#p|gLuZt)1eF#Yez>qR{%JPr( zeDF7r#7*EQPo=kwjr_Jga_Gw&4TluGdR_29JMkJ_}?Q6nR6;EEhR$_T?6{&L1 zirVzSSVc(X<;(bVS3c_K`|u&t>(-yX93&kddAP~4yK39?D9=w$njzxy*7 zpFkn!gy=sL{bxpjqLAx_+FzYC|GYwGmq4AU@RotmhxMl2ew4GTzv(y_W=?g;Jm&N3 zZO?8dw#nnmbwwTzQ@Xz;`p-ladt|-lM`?AIWSSB?U#jLJ=ro#qztck#U4wShD9een z)|;`@sJ2U2d3yL7*Jmd)DKA#@pRqscWIUO5!tZhgN(Y~va0U}hI>R%r3Fk&%{Uhop zZUK*2zh87SM$^aBSnpt9YO`^N;!-M8*Yf6lE}FYX-G(hX7T5+v5-Qo$rE=|ESF~eE zr2>3B7iMA7vX{#b8E|bq-RFdwJC@co3{Z$J#Ky;Qzra<__1mIKk|%Rl`AuEw!C2Te z%q+3APbDj8JB-?EXnnCi!<1n+<$EFq0Sf-l{AKmF@bL-9a`VOB)FH{%joQh)DF`ab za8s&r=5$j8^-${1B4yr7hQ@{KkuxQ&R`u`|YbplyUKxHtZDFJ#wvywqRtisk!`JX^ zK}=!%?i;n71%Jvbx-RvoymiB;Y#&R(ZL!I?@O`&Hoc7H z3e|-aAj+CvL1x4Icl}N=25Y3h3R9;n$X?x?>!DtFc@GO zC@Nl+FI78+<(f-HJ5eq}hnG0`dXztM&0=WU)4}IFs;U`C^!zb?!`Uk4r{yjQD{(Ui z-$c4AzcYwuZkD(_JEwv}hiqh{6dMW=234jxQ16fusqFC`*&3bEly&kM} zGRN>J-f{mzkS*Ks#$q8w@LtmPh2sKw@pKFH>{AI*cA9HTeMxn{7;+A=@*<%om#Den z^UO9>qgHeCZ4%u9n>_gLn}WqOx13SEHY^eqN{K zEdEsv@r_Tq^?+2Zcs+iA7qqQ4837L3y+7$Hy%R(Zf`q<4dK|qnjctL7G$aI8y_;19 z9sTs!8&pK7voR3oPpFIB(}yaF>*Sfv@n^Mezu@Q53|!US{lwkF-x?sg{62iOXS338 zM8tE71Y|!D$)0I6v#<0|8Q<^^2{QxZGSO(e#lOoqJB%;0C*N z=MGH~u|yN;(?IDMh&43PeswI!`I)ppL%X+%W5?n6zQsd~EaAW}FjnJUPSn zlHPkvo}ER~RhAX>L6%zRSg5<$NX>ucvBmA@S6{LSoZBW-YG?yl1~rgV>bn z#%Olj1FbciBKSZMI8eJ1nu#U|WX|@l&rjI>5-3kWnPy26OrfO8$PVXa+c0@9e{0XQ= zRRnJ&?+q0F5qzH6fhT$yf5|D86dF@AZlrUh1%o%FGB z*R!8TYvrI(b0{+Y3G=Ge&6+N13!kUh=?FR(BkyV7C6~)BN5*+IBS(T<2~W6n1RIic zs8c$3oy6}Lq0ij9ygR@?Bh7?$E6ESaol7xlH9B*ECC8lOk5;j^Iov~7Dt(U)y)Zo_ zv~i=>beIn}V9)Yh1Z5_n_hwV}_LCp(}%Xhc#fht@<-5x0+tuiXZ32wr8JK#Vg8)}yLm)I;}mlo zVhh<%-iU|AC!Ohdl;^g`Zwr}u&jeyOO9QYMA=^c`ZAyp>A;}0|6YOF$@#9?^CKzp!-=< zR_BZ=pT&tag!Sgg2tj^PK2f2%2=dcp4p13u3RD=@u`@5_&$6RAC=c9l>`3F=J9>K6 z-w11=(CNWzG-0SXOf@k^hqL;q7j2!o$AWKpL)pkwa)!Tao9a@>Dw*qEPAqw5s7hei zjZb_>YsRGHyO{8OaegkP5kSoi)3eKivoOTk2cmq^O(2Pw_Mc001y33VqD%_@C zpMV4TuGOhtzR0YoM%w3jq||R5^pVn&Be4&f23|_-eRv@?=~&)OMH3RSMiY?nK7Ols zXeZC~V>3}mFM73 ze_f>_b@faQGD8Rx!<4odQs@579cm|CCXs*nJdy`b`tcVv%v@ySEN^^n=EubJURsA2 z2p&kO6_Eqz1pu0G8Ja`%u@>e}`0;tN6+mZbSmUwf2z|f!RulSgAh?Cj*u=SJq~T%U zZraScRKGj82z2J~O2vP*J4iI5Dd_xo22{NJzp0+bJ9Yvf4Gp&B(^&gN@6olGs!rLw z26aP^p=m_ZB0xDJz>`yTP;J(yrO{j?&Xg$*ZsJSnp52Ypn6k*&WY&?Fs%1keT~|yp z+0AloZ0sM^(fhAgq9$j~yrJp#Ljbk;>1=v_xNavsiR^sDtjP&U+yGKA_wiP1@F5Tv z4Mi~jD^YK%i0kw@a?YEGxM8v$>>ku4#*m}1?aozcK$5jNn` zxbYBti)OIvW&_WUip_>KZ>)I{f(o3kR@ej4C*hJl9v`4e(GfAS&qFp}Kp`MBYEpl6 zpeK<9W?Lc>*~ql}!kw)j9?Flyq+?U$e7y-L;G zsbu0ZnzmMihQ(svfKIGJ9pO}CgJif!*Tk|iY}g3i*?t{|TUnBjMFqSaz9Gdhg2O9i zEY~j+7FKTEBgWNv9YBkJjWS2S#NjcO)Yo#pwY<5*gcDwWu`wyVHH~@1fctg}nONFm zK93OGK$sT7B4t{2Sc<|7tL_ z-a7a>MQq#cD?HV`f?!~SZ~IH9OKcCD!`4P z8>e6SgS1-!ADGg2#x_Gqr+zVDIR^YjtHs`|l{J>#flj%bv0eAM2oet`ovJqzCS6+t z<9VB&{DU!m#J5F-4}0|R8d?C62X;{p3E1+V;TBD8`V}qS4ImpGmxh%*k6&*^yn`{m z(--W&J6+VX8{NYXDr?@K=oh~05F@$2oXM`o>k_NdoOQZx*Rxt&K0N|Kcd^5mV8XcQx2(aUiQT=Ut^%^TlYPlvM3yy_1Z(;Bbs1KH>U z8JO8{4@U1Hn|3WJq!x&x5N7T-rU;H>=jy(P$VC!u&!zs2v(5g;s{jaHp4i>ZI&Ydf zKf^M}ZqOT~>_MZlB1O?6AI}x&Ek` zXJ6H{-&)^l@dd3ZBL@Z=*CU!Yg^L^3)&4P$8C(!shh@ft$J%V$1K*(a@%BI^{Hn z$veTH_3~tGpR4|M>Sv~w-|S~E*iBv)tIWc}qalokRsH^iBXkH$M6+wG;8a$>_|E0a zayNH5&)-Q+9c`iVSx-ZQ8gBD$to8i373RCU2w~RAI{3m)1uu%*_aE?|*3AR}MKVx& zYIOwV2~KCIDmdxb3Yl*JEX+*=!k7Iv^(ZwqT_7p85vap>W7q?7S}Dh(rOyt~*x++4 z@;Li!H;lUJy#x@4*S%HE83A6-UOJzstHDX<+Tk1FH6YWB!SnmJdQ{hzp_3Yvu`~>F4q1?};U!%~!))PdAXl zdKkjM`S4bW`m>|8Mmy2MGWPtA$=*H8cd7l#RF{cK@A}21i@KsK203zzeE<7AgQ^0J zp_%*F%`KoV!#NOqwyRnyf}lG69(zuO29K?OVPd`Zw36o}iFAnB6>T zD)jEfYGTq#j~D!!pO?abN*^l4I+_#m&iXW9+g)JqT(}%VD?v2yo92B}wEU)fZ0pfU z1L=ea=)Nczj?;dVm>w|jPziGDFrPYfPf+ZLsmlV?RM;hWJFTv)E#DfpG2{hO$JU#HCGU;^c2&8SH+nHA`G z0@3|3Z|(0yevv18E_izU3ktU5vl129Ua+!rYfXy!6(k6Z(nXa1Cw@da#p{upIz0h`y-zHE73t5^^3;>Vmc&Bhg)&K^|7e zsZ!$*gt=Y7o`PqT0JC$jYb}99)Xhw`w1=|P6Htd zLUy?@_~d&q&+%sC7J)NunKMwz-q6Ua_Lx)a0qPFsf*HK53io@u{1mixG6BuOf)8QA zG`^8rdyiGjM>fM5Pb{&12U&#i&x=p@C(DKC&H}WD_HOw61l8Med1se+rL?>?Hn);) z{m?$6)*{~evVHK=UIzf0e*_vv9}-I+JQiImscz`#7d#`;0zB#oGy}9+MB$qml5s>t zEg0$hSu;;ybnPU994+=#WJdB)lDkhMb?d=bRHr2;L)$BO~R(2hbKmgoe?uxs}LY;p_|8{ZVtv_-)2scGmvaS<4=|qyd9XgN6o?l z;KL0E3r0#c4~g@Wf%B#|$qx~&o>d5vo8hdXbGz_@g2i8n(=y_OAq!KPRXa@Ga zvR08CB^*mlzN4u^phrF*e!NKAO#6KG_^MCarH1?wQD)y78$Awi)e9YTknFHcF40(_ ztYsL&(PH-b#cgI10A$k7N}B#FS8>VD!1NW3L;ho$ z4+W~(OX2O5^Xc2RHiZ@)f<~?``|sithSF1P^@@^tIx?)gnu|Sn)iqj#O1Xvx1iK*z zb1z{)c?3=-M#7ez=x1f2`R#ns^~}}^OIVl~^?qSNYI5;RP1Ap3NF_ODfGZpZ3i739 zQ!qc=_)NyXzS{5A8I@zRYF(zT5@}4&>ibP7bFf)tDA*yG<<5vqTH5MpOG!-O7Ep86 zrIr%BA>vSoohdp!PRKg3`KE7k1XhTvs#6Lx;$6Y2*-HQ=%5Hxk4Q>)OVX7NUEX~k# zh1|QS-Ah*`DoiWpFF-f4$^Qf>l+7TS#AaYeI8la6gMH36X{5NV0MQ*uN^ozyEZ}se|9T(+hIsr)_i=QU7v&&IdEn_0d zQ4bA&lv`Upod|IwH7vW@-F3Y~^SFu;fT!t1)&xsL%CR)<&Als*0S0fS3DJv z&+UK1-{KQm#GZCk+eReE@339O>_qdpr&C42@rI8eI%%yMeY(>d_Sed<_O+K0MP|!j z1p?ym-k6}h>=(7ED|9OZN0X^858Ss!QXAH!I%X2$+8erU=;!FB*~*8`2=^o?&PG>j z>m#_C4Ip25v!TWktjq~3=VsQ)+Lio)E2`%7qAe%h=$7A!&<#tu43>AO7#HozT+I=l z9EnSaB3+OVtfDKj9nQ_Huw5OpnX^1N%5J}2n7*6|o%TfrZwv%u25RfS60Kv;5>=r9(H^i;HXXgOb5x?A#j+{0)H<{%UWW1e9FxSz{vSqt`)}hDrRiz15YNyBWG2j*!Q(?7jFZ^c_5~km zc6NWh33)wgN$)Eq!6jg3NT9x|RL}_p+puQy7|-#t@5Z!vcAF^p+)z;9?7#=Rp_-p} zsG)l9FZmBe2Pn3PxASdDE{P7TBukYuQwyDLmiWL5y=f|Yb_t98tUzl@ot-=6i~vrm z`c9h@bh-wDG9uy%=bYE>QHvgG79woOT}4j(+$v-57%DKnJa+NPTCrI2w-&jR7=bMu z5??!p*i^NY#T@c3K&uJ_>q?GoK9pF5CrM?N{I#!~iP(q;h9_*SN&ds1Lw6{bd6h;e zzdljVDAqmq_$ZDffkiPCnRO{JVYlCB=ATO^-XkRnT zqx^#zES?h0qjbOfLCqZBoxgMrc@R&Vm!I&j=5a0Bh$8$YfzAQO}`zy!i%)mPu?K~?3VNFpt?zeqv*pL(74EQO4w{BOpa=^G2W%UO(fFa<)yL; zR16(f4Up{EdwwWx&^WR+Kl;XSg~67xK0ITyax;x`+pkIrxnDoGU7d+3aY@~5F#r5? zwadZ(4HpT1xb6Wu!}u?&A1v9tH2OVzRfPl{dNaCf(Q`KVA2tmqPb*$ZI!(lVamunj zga;qPBZK-m)Tz>!vuz&mV^Ah}v;^$M@QCb*mcp_?6=~ZSpFfpHbEzAE!ffd4dog-I zyX01{xOOx(DOWG{Ak4&Kc3dO*-bag}Mc+`yDaH zy!`CQ4iw$YfkM}5n2raJ=pchc-rUAZkR6LdQM~@-{!H+>vf_`6{#oQ~(v})t36}L; zQA-oZ70(QQ!91$lbhdn3EfSIh5?i&qXT92=yqF~{JsBB<6}Bt^!2Vc%@`hX1`N@)| zntPf2I1vCz&4z#f+YXB`L zaGrAiPR~x2Y4pt6^>-(1YU8qB>I96k*N;Hj{LyOzatqPBrP)NfoVM>w6iC?8${s#q z<%582o>tflvjx*cb~Xo8sem+EE@~Xm9v$`^paq-7#qZNj)^JQhzA28}jUpVm9yyWR zaC*@hV@l$DPU2Y4z#(GY_o>3LY5rD*cC-rcy^Uo4=Y-TJuUv1cOi3;~7KPrsr*k#N=)JGauNevyXl7>~Ph)-5b>@-`$i!OW%5HhNX(j*Q}%SBQmERJZgn^DU^Hkl9-eH zgnWo;pYdBg8~~u_CN`;I_xxp)7dVGYmzHwf>z#=*6z1eL@i!sjfTF}@QiKLm`shP%YntD=eWf(648 zTifF|bPS^*iSgIV2n+oFGPaU{PWAaCE{Pa~R0JjN<=psz|X0 zUDA%F9o|m=Z;8MSdp!j++>#zJdM(Lz=}T}!yiDA+BqlBX-Yl2n=ZStgQcdO>UmOEP z>lt`RR7GpknU)qB`L;4B=gsnyw)$IAJzxndsmT`v6Pbs3-XOKucX4#XJR`LVwhz8} zFO+*`7pNuGiKl9s3f{o38n*i7fyQ|YrJ8tr>G9J`;?vuD*7^6}088%o;hy|)>aML~O zdDX3ec*pkDEzVO5>XlB{d#&Hw;|Fg2NeKCECEE0lQ1rczE7=9z*U z6Qf!dSfE9YPX)n676@I%@Utenl|0Nw^?(#o@K@?L*sTqZ`FCPMtlY%|VA5%uq0bKV z36i!Co(T;9Mf74gEq5dfXvM3knHKj1FCC?=!;V!h+Cm8$jA`q~Xp68}p{&E+vi>>m zMRB1gd?L+~8=r>Qif&K4%!hwqhq%9fp1s$@mgXe*>Fas38eZS0=B^`WpSh?<>`rRb z2W-Vl=Pk}?yL#%e3t(6_Q~kb!%GBw;ySho9+i1LHqEy)&xaioT8R&BHkOY!g16Eu~ zbL?RPe{c zBrh*c`OZHoKIh4lN#xWd;Y_`ebUl1UMdMrbp0A4R*lgG8Y*6YA7^j=)-~f6$f%lO% ze1OD%wdg}pODhYbXILgvZ0s(A@4n{yu4gKF92Ch$3rEFjbY^;>;nUSups;PXKuB8D zL5}9nX){;vZ!~tpF%91{yeA6N_6-z^s~-3UIB50kuXF?$$~qgI_XOs8@aKNzE#$@) zO#~fpG}?!ynmjV@^2R)3J8o*B9wPjCvUyQSLw~p$Sa4BvX}D2HM>(PwWC~ zOd|}bRKK&yHKrd8Z6*2pH53J>zo`M?l~3$UN;QZjliy`e;J^wG(9z+Fr^!)$^IDEA$usCb`x3Y{L3u4_ zV$GA6?RRlq#xfabUGU&_edNuo@vU&I+PF8 zq~J(vOnOD9n(&i2ju;z2Pi6yCkE;&>RiK5E9O8}BeR?m6|G21G3SosKtu3bjH2GMw z@wiEUNj*TywdUMEQv_}dNsAm{^B1h!vdM~>^glka$#NHG`7ZZI{;S9A{#D8i6!z0hIgw_l{G2Oa7mqjeJ9-6pk$LD^Ag948?6YX+jY(Kpku^Y zr;MdC>50BV&NOBc3c+8^dU%-cLdZov;fa*&;e}59tl3CDgnP9=L!uD8F`%s-FbZst zS=9%hareiLJ42@)R;o|aeIG20ytMZmM@P9TmXXAT(o^V{E-Vh`{u|QQKi;eBO$T?s z_B2=*5Nb$V2_%u@=Bbt)cStH_i`A^3PxM$6woC4Dt#5K_UL6I)A>M0J#gDl#jK1x0 zsHC)(D!P?-V>|uqtqo^}NF~JUo)V+Q{!~+j=KbuRu3(9JGylmNb4yd#Lrg>8E;6h6 zq#9M?IKbt(*vsi(3ODp!roBpE;_z+2lfQ60YP#>>jT3Hj)SRv2OSoPhCU?s2>#^E+ zCt;zO7zE9z!KZ1oMFQRckMd=;tPi2SywT)w>^09`ub<8YW59;|(5b`L#3)&?*lgSq zqw#*@QV`jT0w>Rn4McK`Il9tg>(-We5Oip(TaoWf$=G*1NmX|2YWdky(fzaU-g6rT zGj~Rsr>#)D-I9iNcB1nq%-uVa44~0;aZHU#A?SB=g-PbUdMGPH&J9}~gRI7*#Lpz! zG`Cdh-Ot`4L7(+y^%Oo(OwLzC7W%`c1MJ~QMgGHQhoiS6mOMKOEMHpv05_aFXsskalP>5dy*59QftD7+m8`zZ?LhGE(D4e_AlSe`5<4p8k zb=T6=n1ILi8&2UC;I$@w!M^h8t(DJdd_2XxjV9PLQACDrbnEiL<{=xm^Uuq5n=gX@ zL=V7mSpcgHi}jQa1)^@jEwop6KUj0nh&EuNO?&#FC%&vLO)W>Y#f^OrP3^1a`q(Y( zFs&;p$$zZdjRnQCcb&FtJm)6(wNuivKm?}S>Xgf@op!JX*3deOV3gr5aNM}hLV}`VO5eT)!=;gKW zYADBc>(y(T9~E*!HJ^3A(gRLY_37m;jO6wcL(@TLccL@lgS!pd+0c_k`UDqP;A*XJ zOK--xY9VC$;d!mg`P7|9Ls!<0kqT%3^MVH#k#}ggvNOhGpkOKrTO54i0C&!t0)K6W zgSPiw7C5uD>-o51IDMPGlVUljX9C;{i_cJ}YOTegb|dx0$#NpnpVECdQd!9~)eMLf zbE>BNROsUx=Jx5jJv@`w3@FXq$8V`_LLf)N`LHc>Of$N^N7`_Dw-KAT=F;j?<$!x^ zP39MYYJdYM0BR0Jpm*1Tr(Yx_@JSb%d9Dc~y93fnn~bTWYt6ttE`>WK6|h#bflr6s zY0%>3i(sc(+qjUY+7LKhIU?S`XByOxW<>zOeEcq|bg8w*so`fHS?M(Fho0-OY5qQW zv<~YJR?FsqUoe<8pG2PNWr3NRLzOfbamjv2)#r3+O=71Lk&lNs+50b&zt5s%8JgZc zvOGWyi3IrhPDo}xJlT%|$SP;H)=cZ_F|rvr_bOMW{?385)nw<1h`AnLBdW^9{ngYj z`+9Kl8r4UoSra{Ft?mLna$V7gqm%eFe$M*4t}er-s2J-2(eZPnm3>+%Xyk=V&iH*VMPjUq zc^Xv^wPdbM6#o>5TnBLJiX$)UAB((a2LK_v5-!I15e9I>IERyN z+yJ22#$HYG@0KKh`4a$PfnQj_G50e?05Ip5*CgTyn+XW}ugd;o(0^6-?=Ay)@xPAw zJHCbf8_WJ2vivvvEVf %\VignetteEncoding{UTF-8} --- -# TODO: add content \ No newline at end of file +## Use bslib with Golem + +When you create a new Golem application, `app_ui.R` is created with the `shiny::fluidPage()` function. + +By default, the `fluidPage()` function uses **Bootstrap 3**. + +It is possible to use **Bootstrap 4** or **Bootstrap 5** with the `bslib` package. + +First make sure you have the `bslib` package installed: + +```r +install.packages("bslib") +``` + +Then, we need to modify the `app_ui.R` file to use `bslib`. + +### Modify the `app_ui.R` file + +In the `app_ui.R` file, create a new function: + +```{r eval=FALSE} +#' @import bslib +#' @noRd +my_application_theme <- function(version = bslib::version_default()) { + bs_theme( + version = version + ) +} +``` + +Then, modify the `fluidPage()` function to use the `my_application_theme()` function: + +```{r eval=FALSE} +#' The application User-Interface +#' +#' @param request Internal parameter for `{shiny}`. +#' DO NOT REMOVE. +#' @import shiny +#' @noRd +app_ui <- function(request) { + tagList( + # Leave this function for adding external resources + golem_add_external_resources(), + # Your application UI logic + fluidPage( + theme = my_application_theme(), + h1("Hello"), + h2("This is a h2 title"), + actionButton( + inputId = "go", + label = "Click me" + ) + ) + ) +} +``` + +::: {.callout .callout-note} +::: {.callout-body} +Note that we remove the `golem::golem_welcome_page()` function to add some content to the `fluidPage()` function. + +::: +::: + +Now your application uses `bslib` with the default version. + +If you want to use specifically Bootstrap 5, you can modify the `my_application_theme()` function: + +```{r eval=FALSE} +my_application_theme <- function() { + bs_theme( + version = 5 + ) +} +``` + +We also recomand to use the `bslib` page fluid function: + +```{r eval=FALSE} +app_ui <- function(request) { + tagList( + # Leave this function for adding external resources + golem_add_external_resources(), + # Your application UI logic + bslib::page_fluid( + theme = my_application_theme(), + h1("Hello"), + h2("This is a h2 title"), + actionButton( + inputId = "go", + label = "Click me" + ) + ) + ) +} +``` + +More information about `bslib` page layout can be found [here](https://rstudio.github.io/bslib/reference/page.html). + + +## Change the theme of your application + +Once you have set up `bslib`, you can change the theme of your application by modifying the `my_application_theme()` function. + +For example, to use the `cerulean` theme: + +```{r eval=FALSE} +my_application_theme <- function(version = bslib::version_default()) { + bs_theme( + version = version, + bootswatch = "sketchy" + ) +} +``` + +```{r, echo=FALSE, fig.align="center", out.width="100%"} +knitr::include_graphics("sketchy_theme.png") +``` + +You can find the list of available themes with `bslib::bootswatch_themes()` or on the bootswatch website: . + +## Customize your application with your own variables + +You can also use your own variables with `bslib`. + +For example, to use a custom color: + +```{r eval=FALSE} +my_application_theme <- function(version = bslib::version_default()) { + bs_theme( + version = version, + bootswatch = "sketchy", + bg = "#dedede", + fg = "#eca72b", + primary = "#e91e63" + ) +} +``` + +We modify the `actionButton` function to use the `btn-primary` class: + +```{r eval=FALSE} +app_ui <- function(request) { + tagList( + # Leave this function for adding external resources + golem_add_external_resources(), + # Your application UI logic + bslib::page_fluid( + theme = my_application_theme(), + h1("Hello"), + h2("This is a h2 title"), + actionButton( + inputId = "go", + label = "Click me", + class = "btn-primary" + ) + ) + ) +} +``` + +```{r, echo=FALSE, fig.align="center", out.width="100%"} +knitr::include_graphics("sketchy_theme_custom.png") +``` + +::: {.callout .callout-note} +::: {.callout-body} +Use a bootswatch theme is not mandatory, you can use your own variables to fully customize your application. + +More details about Bootstrap variables can be found [here](https://rstudio.github.io/bslib/articles/bs5-variables/index.html). +::: +::: + +## Use a dark theme + +To use a dark theme, you can modify the `my_application_theme()` function: + +```{r eval=FALSE} +my_application_theme <- function( + version = bslib::version_default(), + dark = FALSE) { + if (dark) { + bslib::bs_theme( + version = version, + bootswatch = "sketchy", + bg = "#2c2c2c", + fg = "#ffffff", + primary = "#db5ddb" + ) + } else { + bs_theme( + version = version, + bootswatch = "sketchy", + bg = "#dedede", + fg = "#eca72b", + primary = "#e91e63" + ) + } +} +``` + +We added a `dark` argument to the `my_application_theme()` function. + +To see the dark theme, you can modify the `app_ui` function: + +```{r eval=FALSE} +app_ui <- function(request) { + tagList( + # Leave this function for adding external resources + golem_add_external_resources(), + # Your application UI logic + bslib::page_fluid( + theme = my_application_theme(dark = TRUE), + h1("Hello"), + h2("This is a h2 title"), + actionButton( + inputId = "go", + label = "Click me", + class = "btn-primary" + ) + ) + ) +} +``` + +```{r, echo=FALSE, fig.align="center", out.width="100%"} +knitr::include_graphics("sketchy_theme_dark.png") +``` + +Now, we'd like to be able to switch between the light and dark theme. We can add a `switchInput` to the UI: + +They are several ways to do this. Here some of them: + +### Using bslib toggle input + +In the `app_ui` function, we add a `bslib::input_dark_mode` function: + +```{r eval=FALSE} +app_ui <- function(request) { + tagList( + # Leave this function for adding external resources + golem_add_external_resources(), + # Your application UI logic + bslib::page_fluid( + theme = my_application_theme(dark = TRUE), + bslib::input_dark_mode(), + h1("Hello"), + h2("This is a h2 title"), + actionButton( + inputId = "go", + label = "Click me", + class = "btn-primary" + ) + ) + ) +} +``` + +```{r, echo=FALSE, fig.align="center", out.width="100%"} +knitr::include_graphics("bslib_input_dark_mode.gif") +``` + +### Using your own button + +It's also possible to switch between the light and dark theme with your own button. + +Choose where you want to place the button (or any other input) in your UI. Then, in the server side, you can swith the theme with the `bslib::toggle_dark_mode()` function: + +```{r eval=FALSE} +app_server <- function(input, output, session) { + # Your application server logic + + observeEvent(input$go, { + bslib::toggle_dark_mode() + }) +} +``` + +```{r, echo=FALSE, fig.align="center", out.width="100%"} +knitr::include_graphics("bslib_toggle_dark.gif") +``` From 568c213956324f0a78d27bc4cab1793086d07ecd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arthur=20Br=C3=A9ant?= Date: Wed, 31 Jul 2024 12:12:02 +0200 Subject: [PATCH 15/16] chore: remove golem button --- inst/utils/golem_button_theme.css | 20 -------------------- 1 file changed, 20 deletions(-) delete mode 100644 inst/utils/golem_button_theme.css diff --git a/inst/utils/golem_button_theme.css b/inst/utils/golem_button_theme.css deleted file mode 100644 index 8702cd44..00000000 --- a/inst/utils/golem_button_theme.css +++ /dev/null @@ -1,20 +0,0 @@ - -.golem-switch-themer .form-switch .form-check-input:checked { - background-position: right center; - --bs-form-switch-bg: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmZmZmYiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBjbGFzcz0ibHVjaWRlIGx1Y2lkZS1tb29uIj48cGF0aCBkPSJNMTIgM2E2IDYgMCAwIDAgOSA5IDkgOSAwIDEgMS05LTlaIi8+PC9zdmc+) !important; - background-color: var(--golem-switcher); -} - -.golem-switch-themer .form-switch .form-check-input { - --bs-form-switch-bg: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmZmZmYiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBjbGFzcz0ibHVjaWRlIGx1Y2lkZS1zdW4tbWVkaXVtIj48Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSI0Ii8+PHBhdGggZD0iTTEyIDN2MSIvPjxwYXRoIGQ9Ik0xMiAyMHYxIi8+PHBhdGggZD0iTTMgMTJoMSIvPjxwYXRoIGQ9Ik0yMCAxMmgxIi8+PHBhdGggZD0ibTE4LjM2NCA1LjYzNi0uNzA3LjcwNyIvPjxwYXRoIGQ9Im02LjM0MyAxNy42NTctLjcwNy43MDciLz48cGF0aCBkPSJtNS42MzYgNS42MzYuNzA3LjcwNyIvPjxwYXRoIGQ9Im0xNy42NTcgMTcuNjU3LjcwNy43MDciLz48L3N2Zz4=) !important; - width: 2.6em !important; - height: 1.6em; - background-image: var(--bs-form-switch-bg); - border-radius: 2em; - transition: background-position 0.15s ease-in-out; - background-repeat: no-repeat; - background-size: 18px; - --golem-switcher: var(--bs-primary); - background-color: var(--golem-switcher); - cursor: pointer; -} From 32efb755979615ac2e3d6718fb4e190b4c3ba99a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arthur=20Br=C3=A9ant?= Date: Mon, 5 Aug 2024 16:18:51 +0200 Subject: [PATCH 16/16] doc: update tab titles --- pkgdown/_pkgdown.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgdown/_pkgdown.yml b/pkgdown/_pkgdown.yml index 6bb07cf3..a98371dc 100644 --- a/pkgdown/_pkgdown.yml +++ b/pkgdown/_pkgdown.yml @@ -30,7 +30,7 @@ navbar: right: [github, golemverse] components: tutos: - text: Tutorials + text: Getting started menu: - text: Create your first Golem application href: articles/tutos/first-golem-app.html @@ -39,7 +39,7 @@ navbar: - text: Communication between modules href: articles/tutos/communication_with_modules.html topics: - text: Advanced topics + text: Advanced menu: - text: ------- - text: UI