diff --git a/DESCRIPTION b/DESCRIPTION index 5473ca1eb..1546de138 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -146,7 +146,30 @@ Collate: 'popover.R' 'precompiled.R' 'print.R' + 'shiny-aliases.R' 'shiny-devmode.R' + 'shiny-download_button.R' + 'shiny-input_action_button.R' + 'shiny-input_action_link.R' + 'shiny-input_checkbox.R' + 'shiny-input_checkbox_group.R' + 'shiny-input_date.R' + 'shiny-input_date_range.R' + 'shiny-input_file.R' + 'shiny-input_numeric.R' + 'shiny-input_password.R' + 'shiny-input_radio_buttons.R' + 'shiny-input_select.R' + 'shiny-input_selectize.R' + 'shiny-input_slider.R' + 'shiny-input_text.R' + 'shiny-input_text_area.R' + 'shiny-output_image.R' + 'shiny-output_plot.R' + 'shiny-output_table.R' + 'shiny-output_text.R' + 'shiny-output_text_verbatim.R' + 'shiny-output_ui.R' 'sidebar.R' 'staticimports.R' 'tooltip.R' diff --git a/NAMESPACE b/NAMESPACE index d475ea23b..81ccac562 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -75,13 +75,31 @@ export(card_footer) export(card_header) export(card_image) export(card_title) +export(download_button) +export(download_handler) +export(download_link) export(font_collection) export(font_face) export(font_google) export(font_link) +export(input_action_button) +export(input_action_link) +export(input_checkbox) +export(input_checkbox_group) export(input_dark_mode) +export(input_date) +export(input_date_range) +export(input_file) +export(input_numeric) +export(input_password) +export(input_radio_buttons) +export(input_select) +export(input_selectize) +export(input_slider) export(input_switch) export(input_task_button) +export(input_text) +export(input_text_area) export(is.card_item) export(is_bs_theme) export(is_fill_carrier) @@ -120,6 +138,12 @@ export(navset_pill) export(navset_pill_list) export(navset_tab) export(navset_underline) +export(output_image) +export(output_plot) +export(output_table) +export(output_text) +export(output_text_verbatim) +export(output_ui) export(page) export(page_fill) export(page_fillable) @@ -130,6 +154,12 @@ export(page_sidebar) export(popover) export(precompiled_css_path) export(remove_all_fill) +export(render_image) +export(render_plot) +export(render_table) +export(render_text) +export(render_text_verbatim) +export(render_ui) export(run_with_themer) export(showcase_bottom) export(showcase_left_center) @@ -144,9 +174,22 @@ export(toggle_sidebar) export(toggle_switch) export(toggle_tooltip) export(tooltip) +export(update_action_button) +export(update_action_link) +export(update_checkbox) +export(update_checkbox_group) +export(update_date) +export(update_date_range) +export(update_numeric) export(update_popover) +export(update_radio_buttons) +export(update_select) +export(update_selectize) +export(update_slider) export(update_switch) export(update_task_button) +export(update_text) +export(update_text_area) export(update_tooltip) export(value_box) export(value_box_theme) diff --git a/R/shiny-aliases.R b/R/shiny-aliases.R new file mode 100644 index 000000000..b66379ae6 --- /dev/null +++ b/R/shiny-aliases.R @@ -0,0 +1,26 @@ +docs_callout_shiny_alias <- function(new, old) { + sprintf( + paste0( + "This function is an alias for `shiny::%s()` and is included to ", + "maintain more consistent naming conventions in Shiny apps that use ", + "\\pkg{bslib}. The documentation on this page may still refer to the ", + "original function names. You can replace `shiny::%s()` with `%s()`." + ), + old, old, new + ) +} + +shiny_quote_if_unquoted <- function( + expr, + quoted = FALSE, + ..., + env = parent.frame() +) { + if (quoted) return(expr) + # installExprFunction() quotes using its parent.frame(), which will not be + # the right frame when `shiny::renderPrint()` or similar are called from + # within a wrapping function. This function is a workaround to quote the + # expression, in the right environment, so that we always pass quoted + # expressions to `shiny::renderPrint()`. + eval(substitute(substitute(expr)), env) +} diff --git a/R/shiny-download_button.R b/R/shiny-download_button.R new file mode 100644 index 000000000..a17517344 --- /dev/null +++ b/R/shiny-download_button.R @@ -0,0 +1,69 @@ +#' @inherit shiny::downloadButton params return title description details sections references +#' +#' @inheritParams input_action_button +#' +#' @section Aliased from Shiny: `r docs_callout_shiny_alias("download_button", "downloadButton")` +#' +#' @family Shiny upload/download aliases +#' @export +download_button <- function( + id, + label = "Download", + ..., + class = NULL, + icon = shiny::icon("download") +) { + shiny::downloadButton( + outputId = id, + label = "Download", + class = NULL, + ..., + icon = shiny::icon("download") + ) +} + +#' @inherit shiny::downloadLink params return title description details sections references +#' +#' @inheritParams input_action_button +#' +#' @section Aliased from Shiny: `r docs_callout_shiny_alias("download_link", "downloadLink")` +#' +#' @family Shiny upload/download aliases +#' @export +download_link <- function( + id, + label = "Download", + ..., + class = NULL +) { + shiny::downloadLink( + outputId = id, + label = "Download", + class = NULL, + ... + ) +} + +#' @inherit shiny::downloadHandler params return title description details sections references +#' +#' @section Aliased from Shiny: `r docs_callout_shiny_alias("download_handler", "downloadHandler")` +#' +#' @seealso +#' * [download_button()] creates a download button in the UI. +#' * [download_link()] creates a download link in the UI. +#' +#' @family Shiny upload/download aliases +#' @export +download_handler <- function( + filename, + content, + contentType = NULL, + outputArgs = list() +) { + shiny::downloadHandler( + filename = filename, + content = content, + contentType = contentType, + outputArgs = outputArgs + ) +} diff --git a/R/shiny-input_action_button.R b/R/shiny-input_action_button.R new file mode 100644 index 000000000..000c9c8d7 --- /dev/null +++ b/R/shiny-input_action_button.R @@ -0,0 +1,56 @@ +#' @inherit shiny::actionButton params return title description details sections references +#' +#' @param id An input id. +#' @param label An input label. +#' +#' @section Aliased from Shiny: `r docs_callout_shiny_alias("input_action_button", "actionButton")` +#' +#' @seealso [update_action_button()] to programmatically update an action +#' button. +#' +#' @family Shiny input aliases +#' @export +input_action_button <- function( + id, + label, + ..., + icon = NULL, + width = NULL, + disabled = FALSE +) { + shiny::actionButton( + inputId = id, + label = list(icon, label), # avoid shiny's icon validation + width = width, + disabled = disabled, + ... + ) +} + +#' @inherit shiny::updateActionButton params return title description details sections references +#' @inheritParams input_action_button +#' +#' @inheritParams input_action_button +#' @param ... Ignored, included for future expansion. +#' +#' @section Aliased from Shiny: `r docs_callout_shiny_alias("update_action_button", "updateActionButton")` +#' +#' @seealso [input_action_button()] to create an action button. +#' +#' @family Shiny update aliases +#' @export +update_action_button <- function( + id, + ..., + label = NULL, + icon = NULL, + disabled = NULL, + session = get_current_session() +) { + # In-lined to avoid shiny's icon validation + validate_session_object(session, "update_action_button") + + if (!is.null(icon)) icon <- as.character(icon) + message <- dropNulls(list(label=label, icon=icon, disabled=disabled)) + session$sendInputMessage(id, message) +} diff --git a/R/shiny-input_action_link.R b/R/shiny-input_action_link.R new file mode 100644 index 000000000..c6074b4ad --- /dev/null +++ b/R/shiny-input_action_link.R @@ -0,0 +1,47 @@ +#' @inherit shiny::actionLink params return title description details sections references +#' +#' @inheritParams input_action_button +#' +#' @section Aliased from Shiny: `r docs_callout_shiny_alias("input_action_link", "actionLink")` +#' +#' @seealso [update_action_link()] to programmatically update an action link. +#' +#' @family Shiny input aliases +#' @export +input_action_link <- function( + id, + label, + icon = NULL, + ... +) { + shiny::actionLink( + inputId = id, + label = list(icon, label), # avoid shiny's icon validation + ... + ) +} + +#' @inherit shiny::updateActionLink params return title description details sections references +#' @inheritParams input_action_button +#' @param ... Ignored, included for future expansion. +#' +#' @section Aliased from Shiny: `r docs_callout_shiny_alias("update_action_link", "updateActionLink")` +#' +#' @seealso [input_action_link()] to create an action link. +#' +#' @family Shiny update aliases +#' @export +update_action_link <- function( + id, + ..., + label = NULL, + icon = NULL, + session = get_current_session +) { + update_action_button( + id = id, + label = label, + icon = icon, + session = session + ) +} diff --git a/R/shiny-input_checkbox.R b/R/shiny-input_checkbox.R new file mode 100644 index 000000000..00eedbf5c --- /dev/null +++ b/R/shiny-input_checkbox.R @@ -0,0 +1,51 @@ +#' @inherit shiny::checkboxInput params return title description details sections references +#' +#' @inheritParams input_action_button +#' @param ... Ignored, included for future expansion. +#' +#' @seealso [update_checkbox()] to programmatically update a checkbox. +#' +#' @section Aliased from Shiny: `r docs_callout_shiny_alias("input_checkbox", "checkboxInput")` +#' +#' @family Shiny input aliases +#' @export +input_checkbox <- function( + id, + label, + value = FALSE, + ..., + width = NULL +) { + shiny::checkboxInput( + inputId = id, + label = label, + value = value, + width = width + ) +} + +#' @inherit shiny::updateCheckboxInput params return title description details sections references +#' +#' @inheritParams input_action_button +#' @param ... Ignored, included for future expansion. +#' +#' @seealso [input_checkbox()] to create a checkbox. +#' +#' @section Aliased from Shiny: `r docs_callout_shiny_alias("update_checkbox", "updateCheckboxInput")` +#' +#' @family Shiny update aliases +#' @export +update_checkbox <- function( + id, + ..., + label = NULL, + value = NULL, + session = get_current_session() +) { + shiny::updateCheckboxInput( + session = session, + inputId = id, + label = label, + value = value + ) +} diff --git a/R/shiny-input_checkbox_group.R b/R/shiny-input_checkbox_group.R new file mode 100644 index 000000000..d0513ba23 --- /dev/null +++ b/R/shiny-input_checkbox_group.R @@ -0,0 +1,68 @@ +#' @inherit shiny::checkboxGroupInput params return title description details sections references +#' +#' @inheritParams input_action_button +#' @param ... Ignored, included for future expansion. +#' +#' @section Aliased from Shiny: `r docs_callout_shiny_alias("input_checkbox_group", "checkboxGroupInput")` +#' +#' @seealso [update_checkbox_group()] to programmatically update a checkbox +#' group. +#' +#' @family Shiny input aliases +#' @export +input_checkbox_group <- function( + id, + label, + choices = NULL, + selected = NULL, + ..., + inline = FALSE, + width = NULL, + choiceNames = NULL, + choiceValues = NULL +) { + shiny::checkboxGroupInput( + inputId = id, + label = label, + choices = choices, + selected = selected, + inline = inline, + width = width, + choiceNames = choiceNames, + choiceValues = choiceValues + ) +} + +#' @inherit shiny::updateCheckboxGroupInput params return title description details sections references +#' +#' @inheritParams input_action_button +#' @param ... Ignored, included for future expansion. +#' +#' @section Aliased from Shiny: `r docs_callout_shiny_alias("update_checkbox_group", "updateCheckboxGroupInput")` +#' +#' @seealso [input_checkbox_group()] to create a checkbox group. +#' +#' @family Shiny update aliases +#' @export +update_checkbox_group <- function( + id, + ..., + label = NULL, + choices = NULL, + selected = NULL, + inline = FALSE, + choiceNames = NULL, + choiceValues = NULL, + session = get_current_session() +) { + shiny::updateCheckboxGroupInput( + session = session, + inputId = id, + label = label, + choices = choices, + selected = selected, + inline = inline, + choiceNames = choiceNames, + choiceValues = choiceValues + ) +} diff --git a/R/shiny-input_date.R b/R/shiny-input_date.R new file mode 100644 index 000000000..7b86837c4 --- /dev/null +++ b/R/shiny-input_date.R @@ -0,0 +1,73 @@ +#' @inherit shiny::dateInput params return title description details sections references +#' +#' @inheritParams input_action_button +#' @param ... Ignored, included for future expansion. +#' +#' @section Aliased from Shiny: `r docs_callout_shiny_alias("input_date", "dateInput")` +#' +#' @seealso [update_date()] to programmatically update a date input. +#' +#' @family Shiny input aliases +#' @export +input_date <- function( + id, + label, + value = NULL, + ..., + min = NULL, + max = NULL, + format = "yyyy-mm-dd", + startview = "month", + weekstart = 0, + language = "en", + width = NULL, + autoclose = TRUE, + datesdisabled = NULL, + daysofweekdisabled = NULL +) { + shiny::dateInput( + inputId = id, + label = label, + value = value, + min = min, + max = max, + format = format, + startview = startview, + weekstart = weekstart, + language = language, + width = width, + autoclose = autoclose, + datesdisabled = datesdisabled, + daysofweekdisabled = daysofweekdisabled + ) +} + +#' @inherit shiny::updateDateInput params return title description details sections references +#' +#' @inheritParams input_action_button +#' @param ... Ignored, included for future expansion. +#' +#' @section Aliased from Shiny: `r docs_callout_shiny_alias("update_date", "updateDateInput")` +#' +#' @seealso [input_date()] to create a date input. +#' +#' @family Shiny update aliases +#' @export +update_date <- function( + id, + ..., + label = NULL, + value = NULL, + min = NULL, + max = NULL, + session = get_current_session() +) { + shiny::updateDateInput( + session = session, + inputId = id, + label = label, + value = value, + min = min, + max = max + ) +} diff --git a/R/shiny-input_date_range.R b/R/shiny-input_date_range.R new file mode 100644 index 000000000..f5602b348 --- /dev/null +++ b/R/shiny-input_date_range.R @@ -0,0 +1,75 @@ +#' @inherit shiny::dateRangeInput params return title description details sections references +#' +#' @inheritParams input_action_button +#' @param ... Ignored, included for future expansion. +#' +#' @section Aliased from Shiny: `r docs_callout_shiny_alias("input_date_range", "dateRangeInput")` +#' +#' @seealso [update_date_range()] to programmatically update a date range input. +#' +#' @family Shiny input aliases +#' @export +input_date_range <- function( + id, + label, + start = NULL, + end = NULL, + ..., + min = NULL, + max = NULL, + format = "yyyy-mm-dd", + startview = "month", + weekstart = 0, + language = "en", + separator = " to ", + width = NULL, + autoclose = TRUE +) { + shiny::dateRangeInput( + inputId = id, + label = label, + start = start, + end = end, + min = min, + max = max, + format = format, + startview = startview, + weekstart = weekstart, + language = language, + separator = separator, + width = width, + autoclose = autoclose + ) +} + +#' @inherit shiny::updateDateRangeInput params return title description details sections references +#' +#' @inheritParams input_action_button +#' @param ... Ignored, included for future expansion. +#' +#' @section Aliased from Shiny: `r docs_callout_shiny_alias("update_date_range", "updateDateRangeInput")` +#' +#' @seealso [input_date_range()] to create a date range input. +#' +#' @family Shiny update aliases +#' @export +update_date_range <- function( + id, + ..., + label = NULL, + start = NULL, + end = NULL, + min = NULL, + max = NULL, + session = get_current_session() +) { + shiny::updateDateRangeInput( + session = session, + inputId = id, + label = label, + start = start, + end = end, + min = min, + max = max + ) +} diff --git a/R/shiny-input_file.R b/R/shiny-input_file.R new file mode 100644 index 000000000..bd23a5527 --- /dev/null +++ b/R/shiny-input_file.R @@ -0,0 +1,31 @@ +#' @inherit shiny::fileInput params return title description details sections references +#' +#' @inheritParams input_action_button +#' @param ... Ignored, included for future expansion. +#' +#' @section Aliased from Shiny: `r docs_callout_shiny_alias("input_file", "fileInput")` +#' +#' @family Shiny upload/download aliases +#' @export +input_file <- function( + id, + label, + ..., + multiple = FALSE, + accept = NULL, + width = NULL, + buttonLabel = "Browse...", + placeholder = "No file selected", + capture = NULL +) { + shiny::fileInput( + inputId = id, + label = label, + multiple = multiple, + accept = accept, + width = width, + buttonLabel = buttonLabel, + placeholder = placeholder, + capture = capture + ) +} diff --git a/R/shiny-input_numeric.R b/R/shiny-input_numeric.R new file mode 100644 index 000000000..a29f632fb --- /dev/null +++ b/R/shiny-input_numeric.R @@ -0,0 +1,63 @@ +#' @inherit shiny::numericInput params return title description details sections references +#' +#' @inheritParams input_action_button +#' @param ... Ignored, included for future expansion. +#' +#' @section Aliased from Shiny: `r docs_callout_shiny_alias("input_numeric", "numericInput")` +#' +#' @seealso [update_numeric()] to programmatically update a numeric input. +#' +#' @family Shiny input aliases +#' @export +input_numeric <- function( + id, + label, + value, + ..., + min = NA, + max = NA, + step = NA, + width = NULL +) { + shiny::numericInput( + inputId = id, + label = label, + value = value, + min = min, + max = max, + step = step, + width = width + ) +} + +#' @inherit shiny::updateNumericInput params return title description details sections references +#' +#' @inheritParams input_action_button +#' @param ... Ignored, included for future expansion. +#' +#' @section Aliased from Shiny: `r docs_callout_shiny_alias("update_numeric", "updateNumericInput")` +#' +#' @seealso [input_numeric()] to create a numeric input. +#' +#' @family Shiny update aliases +#' @export +update_numeric <- function( + id, + ..., + label = NULL, + value = NULL, + min = NULL, + max = NULL, + step = NULL, + session = get_current_session() +) { + shiny::updateNumericInput( + session = session, + inputId = id, + label = label, + value = value, + min = min, + max = max, + step = step + ) +} diff --git a/R/shiny-input_password.R b/R/shiny-input_password.R new file mode 100644 index 000000000..f751c9fc9 --- /dev/null +++ b/R/shiny-input_password.R @@ -0,0 +1,27 @@ +#' @inherit shiny::passwordInput params return title description details sections references +#' +#' @inheritParams input_action_button +#' @param ... Ignored, included for future expansion. +#' +#' @section Aliased from Shiny: `r docs_callout_shiny_alias("input_password", "passwordInput")` +#' +#' @seealso [update_text()] is used to programmatically update a password input. +#' +#' @family Shiny input aliases +#' @export +input_password <- function( + id, + label, + value = "", + ..., + width = NULL, + placeholder = NULL +) { + shiny::passwordInput( + inputId = id, + label = label, + value = value, + width = width, + placeholder = placeholder + ) +} diff --git a/R/shiny-input_radio_buttons.R b/R/shiny-input_radio_buttons.R new file mode 100644 index 000000000..286d35adf --- /dev/null +++ b/R/shiny-input_radio_buttons.R @@ -0,0 +1,68 @@ +#' @inherit shiny::radioButtons params return title description details sections references +#' +#' @inheritParams input_action_button +#' @param ... Ignored, included for future expansion. +#' +#' @section Aliased from Shiny: `r docs_callout_shiny_alias("input_radio_buttons", "radioButtons")` +#' +#' @seealso [update_radio_buttons()] to programmatically update a radio button +#' input. +#' +#' @family Shiny input aliases +#' @export +input_radio_buttons <- function( + id, + label, + choices = NULL, + selected = NULL, + ..., + inline = FALSE, + width = NULL, + choiceNames = NULL, + choiceValues = NULL +) { + shiny::radioButtons( + inputId = id, + label = label, + choices = choices, + selected = selected, + inline = inline, + width = width, + choiceNames = choiceNames, + choiceValues = choiceValues + ) +} + +#' @inherit shiny::updateRadioButtons params return title description details sections references +#' +#' @inheritParams input_action_button +#' @param ... Ignored, included for future expansion. +#' +#' @section Aliased from Shiny: `r docs_callout_shiny_alias("update_radio_buttons", "updateRadioButtons")` +#' +#' @seealso [input_radio_buttons()] to create a radio button input. +#' +#' @family Shiny update aliases +#' @export +update_radio_buttons <- function( + id, + ..., + label = NULL, + choices = NULL, + selected = NULL, + inline = FALSE, + choiceNames = NULL, + choiceValues = NULL, + session = get_current_session() +) { + shiny::updateRadioButtons( + session = session, + inputId = id, + label = label, + choices = choices, + selected = selected, + inline = inline, + choiceNames = choiceNames, + choiceValues = choiceValues + ) +} diff --git a/R/shiny-input_select.R b/R/shiny-input_select.R new file mode 100644 index 000000000..eb5c4b3c9 --- /dev/null +++ b/R/shiny-input_select.R @@ -0,0 +1,65 @@ +#' @inherit shiny::selectInput params return title description details sections references +#' +#' @inheritParams input_action_button +#' @param ... Ignored, included for future expansion. +#' +#' @section Aliased from Shiny: +#' `r docs_callout_shiny_alias("input_select", "selectInput")` +#' +#' Note that, unlike in [shiny::selectInput()], `input_select()` does not +#' use selectize.js by default. Insttead, set `selectize = TRUE` or call +#' [input_selectize()] directly. +#' +#' @seealso [update_select()] to programmatically update a select input. +#' +#' @family Shiny input aliases +#' @export +input_select <- function( + id, + label, + choices, + selected = NULL, + ..., + multiple = FALSE, + selectize = FALSE, # Match Shiny for Python + width = NULL, + size = NULL +) { + shiny::selectInput( + inputId = id, + label = label, + choices = choices, + selected = selected, + multiple = multiple, + selectize = selectize, + width = width, + size = size + ) +} + +#' @inherit shiny::updateSelectInput params return title description details sections references +#' @inheritParams input_action_button +#' @param ... Ignored, included for future expansion. +#' +#' @section Aliased from Shiny: `r docs_callout_shiny_alias("update_select", "updateSelectInput")` +#' +#' @seealso [input_select()] to create a select input. +#' +#' @family Shiny update aliases +#' @export +update_select <- function( + id, + ..., + label = NULL, + choices = NULL, + selected = NULL, + session = get_current_session() +) { + shiny::updateSelectInput( + session = session, + inputId = id, + label = label, + choices = choices, + selected = selected + ) +} diff --git a/R/shiny-input_selectize.R b/R/shiny-input_selectize.R new file mode 100644 index 000000000..dad494d4a --- /dev/null +++ b/R/shiny-input_selectize.R @@ -0,0 +1,55 @@ +#' @inherit shiny::selectizeInput params return title description details sections references +#' +#' @inheritParams input_action_button +#' @param ... Ignored, included for future expansion. +#' +#' @section Aliased from Shiny: `r docs_callout_shiny_alias("input_selectize", "selectizeInput")` +#' +#' @seealso [update_selectize()] to programmatically update a selectize input. +#' +#' @family Shiny input aliases +#' @export +input_selectize <- function( + id, + ..., + options = NULL, + width = NULL +) { + shiny::selectizeInput( + inputId = id, + ..., + options = options, + width = width + ) +} + +#' @inherit shiny::updateSelectizeInput params return title description details sections references +#' @inheritParams input_action_button +#' @param ... Ignored, included for future expansion. +#' +#' @section Aliased from Shiny: `r docs_callout_shiny_alias("update_selectize", "updateSelectizeInput")` +#' +#' @seealso [input_selectize()] to create a selectize input. +#' +#' @family Shiny update aliases +#' @export +update_selectize <- function( + id, + ..., + label = NULL, + choices = NULL, + selected = NULL, + options = list(), + server = FALSE, + session = get_current_session() +) { + shiny::updateSelectizeInput( + session = session, + inputId = id, + label = label, + choices = choices, + selected = selected, + options = options, + server = server + ) +} diff --git a/R/shiny-input_slider.R b/R/shiny-input_slider.R new file mode 100644 index 000000000..4221802c4 --- /dev/null +++ b/R/shiny-input_slider.R @@ -0,0 +1,84 @@ +#' @inherit shiny::sliderInput params return title description details sections references +#' +#' @inheritParams input_action_button +#' @param ... Ignored, included for future expansion. +#' +#' @section Aliased from Shiny: `r docs_callout_shiny_alias("input_slider", "sliderInput")` +#' +#' @seealso [update_slider()] to programmatically update a slider input. +#' +#' @family Shiny input aliases +#' @export +input_slider <- function( + id, + label, + min, + max, + value, + ..., + step = NULL, + round = FALSE, + ticks = TRUE, + animate = FALSE, + width = NULL, + sep = ",", + pre = NULL, + post = NULL, + timeFormat = NULL, + timezone = NULL, + dragRange = TRUE +) { + shiny::sliderInput( + inputId = id, + label = label, + min = min, + max = max, + value = value, + step = step, + round = round, + ticks = ticks, + animate = animate, + width = width, + sep = sep, + pre = pre, + post = post, + timeFormat = timeFormat, + timezone = timezone, + dragRange = dragRange + ) +} + +#' @inherit shiny::updateSliderInput params return title description details sections references +#' @inheritParams input_action_button +#' @param ... Ignored, included for future expansion. +#' +#' @section Aliased from Shiny: `r docs_callout_shiny_alias("update_slider", "updateSliderInput")` +#' +#' @seealso [input_slider()] to create a slider input. +#' +#' @family Shiny update aliases +#' @export +update_slider <- function( + id, + ..., + label = NULL, + value = NULL, + min = NULL, + max = NULL, + step = NULL, + timeFormat = NULL, + timezone = NULL, + session = get_current_session() +) { + shiny::updateSliderInput( + session = session, + inputId = id, + label = label, + value = value, + min = min, + max = max, + step = step, + timeFormat = timeFormat, + timezone = timezone + ) +} diff --git a/R/shiny-input_text.R b/R/shiny-input_text.R new file mode 100644 index 000000000..dfe35deee --- /dev/null +++ b/R/shiny-input_text.R @@ -0,0 +1,55 @@ +#' @inherit shiny::textInput params return title description details sections references +#' +#' @inheritParams input_action_button +#' @param ... Ignored, included for future expansion. +#' +#' @section Aliased from Shiny: `r docs_callout_shiny_alias("input_text", "textInput")` +#' +#' @seealso [update_text()] to programmatically update a text input. +#' +#' @family Shiny input aliases +#' @export +input_text <- function( + id, + label, + value = "", + ..., + width = NULL, + placeholder = NULL +) { + shiny::textInput( + inputId = id, + label = label, + value = value, + width = width, + placeholder = placeholder + ) +} + +#' @inherit shiny::updateTextInput params return title description details sections references +#' +#' @inheritParams input_action_button +#' @param ... Ignored, included for future expansion. +#' +#' @section Aliased from Shiny: `r docs_callout_shiny_alias("update_text", "updateTextInput")` +#' +#' @seealso [input_text()] to create a text input. +#' +#' @family Shiny update aliases +#' @export +update_text <- function( + id, + ..., + label = NULL, + value = NULL, + placeholder = NULL, + session = get_current_session() +) { + shiny::updateTextInput( + session = session, + inputId = id, + label = label, + value = value, + placeholder = placeholder + ) +} diff --git a/R/shiny-input_text_area.R b/R/shiny-input_text_area.R new file mode 100644 index 000000000..58d66053d --- /dev/null +++ b/R/shiny-input_text_area.R @@ -0,0 +1,63 @@ +#' @inherit shiny::textAreaInput params return title description details sections references +#' +#' @inheritParams input_action_button +#' @param ... Ignored, included for future expansion. +#' +#' @section Aliased from Shiny: `r docs_callout_shiny_alias("input_text_area", "textAreaInput")` +#' +#' @seealso [update_text_area()] to programmatically update a text area input. +#' +#' @family Shiny input aliases +#' @export +input_text_area <- function( + id, + label, + value = "", + ..., + width = NULL, + height = NULL, + cols = NULL, + rows = NULL, + placeholder = NULL, + resize = NULL +) { + shiny::textAreaInput( + inputId = id, + label = label, + value = value, + width = width, + height = height, + cols = cols, + rows = rows, + placeholder = placeholder, + resize = resize + ) +} + +#' @inherit shiny::updateTextAreaInput params return title description details sections references +#' +#' @inheritParams input_action_button +#' @param ... Ignored, included for future expansion. +#' +#' @section Aliased from Shiny: `r docs_callout_shiny_alias("update_text_area", "updateTextAreaInput")` +#' +#' @seealso [input_text_area()] to create a text area input. +#' +#' @family Shiny update aliases +#' @export +update_text_area <- function( + id, + ..., + label = NULL, + value = NULL, + placeholder = NULL, + session = get_current_session() +) { + shiny::updateTextAreaInput( + session = session, + inputId = id, + label = label, + value = value, + placeholder = placeholder + ) +} diff --git a/R/shiny-output_image.R b/R/shiny-output_image.R new file mode 100644 index 000000000..3cc17a362 --- /dev/null +++ b/R/shiny-output_image.R @@ -0,0 +1,59 @@ +#' @inherit shiny::imageOutput params return title description details sections references +#' +#' @inheritParams output_text +#' @param ... Ignored, included for future expansion. +#' +#' @seealso [render_image()] to reactively update the `new_output()`. +#' +#' @family Shiny output aliases +#' @export +output_image <- function( + id, + width = "100%", + height = "400px", + ..., + click = NULL, + dblclick = NULL, + hover = NULL, + brush = NULL, + inline = FALSE, + fill = FALSE +) { + shiny::imageOutput( + outputId = id, + width = width, + height = height, + click = click, + dblclick = dblclick, + hover = hover, + brush = brush, + inline = inline, + fill = fill + ) +} + +#' @inherit shiny::renderImage params return title description details sections references +#' +#' @section Aliased from Shiny: `r docs_callout_shiny_alias("render_image", "renderImage")` +#' +#' @seealso [output_image()] to create an output in the UI. +#' +#' @family Shiny render aliases +#' @export +render_image <- function( + expr, + env = parent.frame(), + quoted = FALSE, + deleteFile, + outputArgs = list() +) { + expr <- shiny_quote_if_unquoted(expr, quoted) + + shiny::renderImage( + expr = expr, + env = env, + quoted = TRUE, + deleteFile = deleteFile, + outputArgs = outputArgs + ) +} diff --git a/R/shiny-output_plot.R b/R/shiny-output_plot.R new file mode 100644 index 000000000..8422bdbbd --- /dev/null +++ b/R/shiny-output_plot.R @@ -0,0 +1,69 @@ +#' @inherit shiny::plotOutput params return title description details sections references +#' +#' @inheritParams output_text +#' @param ... Ignored, included for future expansion. +#' +#' @seealso [render_plot()] to reactively update the `new_output()`. +#' +#' @family Shiny output aliases +#' @export +output_plot <- function( + id, + width = "100%", + height = "400px", + ..., + click = NULL, + dblclick = NULL, + hover = NULL, + brush = NULL, + inline = FALSE, + fill = !inline +) { + shiny::plotOutput( + outputId = id, + width = width, + height = height, + click = click, + dblclick = dblclick, + hover = hover, + brush = brush, + inline = inline, + fill = fill + ) +} + +#' @inherit shiny::renderPlot params return title description details sections references +#' +#' @section Aliased from Shiny: `r docs_callout_shiny_alias("render_plot", "renderPlot")` +#' +#' @seealso [output_plot()] to create an output in the UI. +#' +#' @family Shiny render aliases +#' @export +render_plot <- function( + expr, + width = "auto", + height = "auto", + res = 72, + ..., + alt = NA, + env = parent.frame(), + quoted = FALSE, + execOnResize = FALSE, + outputArgs = list() +) { + expr <- shiny_quote_if_unquoted(expr, quoted) + + shiny::renderPlot( + expr = expr, + width = width, + height = height, + res = res, + ..., + alt = alt, + env = env, + quoted = TRUE, + execOnResize = execOnResize, + outputArgs = outputArgs + ) +} diff --git a/R/shiny-output_table.R b/R/shiny-output_table.R new file mode 100644 index 000000000..e774a7b9e --- /dev/null +++ b/R/shiny-output_table.R @@ -0,0 +1,57 @@ +#' @inherit shiny::tableOutput params return title description details sections references +#' +#' @inheritParams output_text +#' +#' @seealso [render_table()] to reactively update the `new_output()`. +#' +#' @family Shiny output aliases +#' @export +output_table <- function(id) { + shiny::tableOutput(outputId = id) +} + +#' @inherit shiny::renderTable params return title description details sections references +#' +#' @section Aliased from Shiny: `r docs_callout_shiny_alias("render_table", "renderTable")` +#' +#' @seealso [output_table()] to create an output in the UI. +#' +#' @family Shiny render aliases +#' @export +render_table <- function( + expr, + ..., + striped = FALSE, + hover = FALSE, + bordered = FALSE, + spacing = c("s", "xs", "m", "l"), + width = "auto", + align = NULL, + rownames = FALSE, + colnames = TRUE, + digits = NULL, + na = "NA", + env = parent.frame(), + quoted = FALSE, + outputArgs = list() +) { + expr <- shiny_quote_if_unquoted(expr, quoted) + + shiny::renderTable( + expr = expr, + striped = striped, + hover = hover, + bordered = bordered, + spacing = spacing, + width = width, + align = align, + rownames = rownames, + colnames = colnames, + digits = digits, + na = na, + ..., + env = env, + quoted = TRUE, + outputArgs = outputArgs + ) +} diff --git a/R/shiny-output_text.R b/R/shiny-output_text.R new file mode 100644 index 000000000..ff72dc8d3 --- /dev/null +++ b/R/shiny-output_text.R @@ -0,0 +1,41 @@ +#' @inherit shiny::textOutput params return title description details sections references +#' +#' @param id An output id. +#' +#' @seealso [render_text()] to reactively update the `new_output()`. +#' +#' @family Shiny output aliases +#' @export +output_text <- function( + id, + inline = FALSE, + container = if (inline) span else div +) { + shiny::textOutput(outputId = id, container = container, inline = inline) +} + +#' @inherit shiny::renderText params return title description details sections references +#' +#' @section Aliased from Shiny: `r docs_callout_shiny_alias("render_text", "renderText")` +#' +#' @seealso [output_text()] to create an output in the UI. +#' +#' @family Shiny render aliases +#' @export +render_text <- function( + expr, + env = parent.frame(), + quoted = FALSE, + outputArgs = list(), + sep = " " +) { + expr <- shiny_quote_if_unquoted(expr, quoted) + + shiny::renderText( + expr = expr, + env = env, + quoted = TRUE, + outputArgs = outputArgs, + sep = sep + ) +} diff --git a/R/shiny-output_text_verbatim.R b/R/shiny-output_text_verbatim.R new file mode 100644 index 000000000..6d6828ad1 --- /dev/null +++ b/R/shiny-output_text_verbatim.R @@ -0,0 +1,40 @@ +#' @inherit shiny::verbatimTextOutput params return title description details sections references +#' +#' @inheritParams output_text +#' +#' @seealso [render_text_verbatim()] to reactively update the `new_output()`. +#' +#' @family Shiny output aliases +#' @export +output_text_verbatim <- function( + id, + placeholder = FALSE +) { + shiny::verbatimTextOutput(outputId = id, placeholder = placeholder) +} + +#' @inherit shiny::renderPrint params return title description details sections references +#' +#' @section Aliased from Shiny: `r docs_callout_shiny_alias("render_text_verbatim", "renderPrint")` +#' +#' @seealso [output_text_verbatim()] to create an output in the UI. +#' +#' @family Shiny render aliases +#' @export +render_text_verbatim <- function( + expr, + env = parent.frame(), + quoted = FALSE, + width = getOption("width"), + outputArgs = list() +) { + expr <- shiny_quote_if_unquoted(expr, quoted) + + shiny::renderPrint( + expr = expr, + env = env, + quoted = TRUE, + width = width, + outputArgs = outputArgs + ) +} diff --git a/R/shiny-output_ui.R b/R/shiny-output_ui.R new file mode 100644 index 000000000..bf8c34682 --- /dev/null +++ b/R/shiny-output_ui.R @@ -0,0 +1,47 @@ +#' @inherit shiny::uiOutput params return title description details sections references +#' +#' @inheritParams output_text +#' +#' @seealso [render_ui()] to reactively update the `new_output()`. +#' +#' @family Shiny output aliases +#' @export +output_ui <- function( + id, + ..., + inline = FALSE, + container = if (inline) span else div, + fill = FALSE +) { + shiny::uiOutput( + outputId = id, + inline = inline, + container = container, + fill = fill, + ... + ) +} + +#' @inherit shiny::renderUI params return title description details sections references +#' +#' @section Aliased from Shiny: `r docs_callout_shiny_alias("render_ui", "renderUI")` +#' +#' @seealso [output_ui()] to create an output in the UI. +#' +#' @family Shiny render aliases +#' @export +render_ui <- function( + expr, + env = parent.frame(), + quoted = FALSE, + outputArgs = list() +) { + expr <- shiny_quote_if_unquoted(expr, quoted) + + shiny::renderUI( + expr = expr, + env = env, + quoted = TRUE, + outputArgs = outputArgs + ) +} diff --git a/R/sysdata.rda b/R/sysdata.rda index 4f1e95705..f7b8eeeb9 100644 Binary files a/R/sysdata.rda and b/R/sysdata.rda differ diff --git a/R/utils-shiny.R b/R/utils-shiny.R index 72bc1c555..f7048ad7a 100644 --- a/R/utils-shiny.R +++ b/R/utils-shiny.R @@ -30,6 +30,13 @@ get_current_theme <- function() { if (isNamespaceLoaded("shiny")) shiny::getCurrentTheme() } +validate_session_object <- function(session, label) { + if (is.null(label)) { + label <- as.character(sys.call(sys.parent())[[1]]) + } + asNamespace("shiny")[["validate_session_object"]](session, label) +} + # Shiny internal funcs needed for nav_panel() (i.e., tabPanel()) logic diff --git a/_pkgdown.yml b/_pkgdown.yml index 7bf7cabff..61a5cef49 100644 --- a/_pkgdown.yml +++ b/_pkgdown.yml @@ -250,6 +250,30 @@ reference: contents: - bs_remove +- title: Shiny Aliases + desc: > + These functions are generally aliases for their counterparts in Shiny, but + using modern naming conventions that are consistent with bslib and are + more in line with the conventions of the broader R community. + + In the future, we may update these functions to take advantage of newer + Bootstrap features. +- subtitle: Shiny Inputs + contents: + - has_concept("Shiny input aliases") +- subtitle: Shiny Input Updating Functions + contents: + - has_concept("Shiny update aliases") +- subtitle: Shiny Output Functions + contents: + - has_concept("Shiny output aliases") +- subtitle: Shiny Render Functions + contents: + - has_concept("Shiny render aliases") +- subtitle: Shiny Upload/Download Functions + contents: + - has_concept("Shiny upload/download aliases") + - title: Utility Functions - subtitle: Fill items and fillable containers desc: | diff --git a/man/download_button.Rd b/man/download_button.Rd new file mode 100644 index 000000000..a7d520fd0 --- /dev/null +++ b/man/download_button.Rd @@ -0,0 +1,42 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/shiny-download_button.R +\name{download_button} +\alias{download_button} +\title{Create a download button or link} +\usage{ +download_button( + id, + label = "Download", + ..., + class = NULL, + icon = shiny::icon("download") +) +} +\arguments{ +\item{id}{An input id.} + +\item{label}{The label that should appear on the button.} + +\item{...}{Other arguments to pass to the container tag function.} + +\item{class}{Additional CSS classes to apply to the tag, if any.} + +\item{icon}{An \code{\link[shiny:icon]{icon()}} to appear on the button. Default is \code{icon("download")}.} +} +\description{ +Use these functions to create a download button or link; when clicked, it +will initiate a browser download. The filename and contents are specified by +the corresponding \code{\link[shiny:downloadHandler]{downloadHandler()}} defined in the server +function. +} +\section{Aliased from Shiny}{ + This function is an alias for \code{shiny::downloadButton()} and is included to maintain more consistent naming conventions in Shiny apps that use \pkg{bslib}. The documentation on this page may still refer to the original function names. You can replace \code{shiny::downloadButton()} with \code{download_button()}. +} + +\seealso{ +Other Shiny upload/download aliases: +\code{\link{download_handler}()}, +\code{\link{download_link}()}, +\code{\link{input_file}()} +} +\concept{Shiny upload/download aliases} diff --git a/man/download_handler.Rd b/man/download_handler.Rd new file mode 100644 index 000000000..59ba08286 --- /dev/null +++ b/man/download_handler.Rd @@ -0,0 +1,54 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/shiny-download_button.R +\name{download_handler} +\alias{download_handler} +\title{File Downloads} +\usage{ +download_handler(filename, content, contentType = NULL, outputArgs = list()) +} +\arguments{ +\item{filename}{A string of the filename, including extension, that the +user's web browser should default to when downloading the file; or a +function that returns such a string. (Reactive values and functions may be +used from this function.)} + +\item{content}{A function that takes a single argument \code{file} that is a +file path (string) of a nonexistent temp file, and writes the content to +that file path. (Reactive values and functions may be used from this +function.)} + +\item{contentType}{A string of the download's +\href{https://en.wikipedia.org/wiki/Internet_media_type}{content type}, for +example \code{"text/csv"} or \code{"image/png"}. If \code{NULL}, the content type +will be guessed based on the filename extension, or +\code{application/octet-stream} if the extension is unknown.} + +\item{outputArgs}{A list of arguments to be passed through to the implicit +call to \code{\link[shiny:downloadButton]{downloadButton()}} when \code{downloadHandler} is used +in an interactive R Markdown document.} +} +\description{ +Allows content from the Shiny application to be made available to the user as +file downloads (for example, downloading the currently visible data as a CSV +file). Both filename and contents can be calculated dynamically at the time +the user initiates the download. Assign the return value to a slot on +\code{output} in your server function, and in the UI use +\code{\link[shiny:downloadButton]{downloadButton()}} or \code{\link[shiny:downloadLink]{downloadLink()}} to make the +download available. +} +\section{Aliased from Shiny}{ + This function is an alias for \code{shiny::downloadHandler()} and is included to maintain more consistent naming conventions in Shiny apps that use \pkg{bslib}. The documentation on this page may still refer to the original function names. You can replace \code{shiny::downloadHandler()} with \code{download_handler()}. +} + +\seealso{ +\itemize{ +\item \code{\link[=download_button]{download_button()}} creates a download button in the UI. +\item \code{\link[=download_link]{download_link()}} creates a download link in the UI. +} + +Other Shiny upload/download aliases: +\code{\link{download_button}()}, +\code{\link{download_link}()}, +\code{\link{input_file}()} +} +\concept{Shiny upload/download aliases} diff --git a/man/download_link.Rd b/man/download_link.Rd new file mode 100644 index 000000000..8df65d4b3 --- /dev/null +++ b/man/download_link.Rd @@ -0,0 +1,34 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/shiny-download_button.R +\name{download_link} +\alias{download_link} +\title{Create a download button or link} +\usage{ +download_link(id, label = "Download", ..., class = NULL) +} +\arguments{ +\item{id}{An input id.} + +\item{label}{The label that should appear on the button.} + +\item{...}{Other arguments to pass to the container tag function.} + +\item{class}{Additional CSS classes to apply to the tag, if any.} +} +\description{ +Use these functions to create a download button or link; when clicked, it +will initiate a browser download. The filename and contents are specified by +the corresponding \code{\link[shiny:downloadHandler]{downloadHandler()}} defined in the server +function. +} +\section{Aliased from Shiny}{ + This function is an alias for \code{shiny::downloadLink()} and is included to maintain more consistent naming conventions in Shiny apps that use \pkg{bslib}. The documentation on this page may still refer to the original function names. You can replace \code{shiny::downloadLink()} with \code{download_link()}. +} + +\seealso{ +Other Shiny upload/download aliases: +\code{\link{download_button}()}, +\code{\link{download_handler}()}, +\code{\link{input_file}()} +} +\concept{Shiny upload/download aliases} diff --git a/man/input_action_button.Rd b/man/input_action_button.Rd new file mode 100644 index 000000000..1d3591c34 --- /dev/null +++ b/man/input_action_button.Rd @@ -0,0 +1,71 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/shiny-input_action_button.R +\name{input_action_button} +\alias{input_action_button} +\title{Action button/link} +\usage{ +input_action_button( + id, + label, + ..., + icon = NULL, + width = NULL, + disabled = FALSE +) +} +\arguments{ +\item{id}{An input id.} + +\item{label}{An input label.} + +\item{...}{Named attributes to be applied to the button or link.} + +\item{icon}{An optional \code{\link[shiny:icon]{icon()}} to appear on the button.} + +\item{width}{The width of the input, e.g. \code{'400px'}, or \code{'100\%'}; +see \code{\link[shiny:validateCssUnit]{validateCssUnit()}}.} + +\item{disabled}{If \code{TRUE}, the button will not be clickable. Use +\code{\link[shiny:updateActionButton]{updateActionButton()}} to dynamically enable/disable the button.} +} +\description{ +Creates an action button or link whose value is initially zero, and increments by one +each time it is pressed. +} +\section{Aliased from Shiny}{ + This function is an alias for \code{shiny::actionButton()} and is included to maintain more consistent naming conventions in Shiny apps that use \pkg{bslib}. The documentation on this page may still refer to the original function names. You can replace \code{shiny::actionButton()} with \code{input_action_button()}. +} + +\section{Server value}{ + + +An integer of class \code{"shinyActionButtonValue"}. This class differs from +ordinary integers in that a value of 0 is considered "falsy". +This implies two things: +\itemize{ +\item Event handlers (e.g., \code{\link[shiny:observeEvent]{observeEvent()}}, \code{\link[shiny:eventReactive]{eventReactive()}}) won't execute on initial load. +\item Input validation (e.g., \code{\link[shiny:req]{req()}}, \code{\link[shiny:need]{need()}}) will fail on initial load. +} + +} + +\seealso{ +\code{\link[=update_action_button]{update_action_button()}} to programmatically update an action +button. + +Other Shiny input aliases: +\code{\link{input_action_link}()}, +\code{\link{input_checkbox}()}, +\code{\link{input_checkbox_group}()}, +\code{\link{input_date}()}, +\code{\link{input_date_range}()}, +\code{\link{input_numeric}()}, +\code{\link{input_password}()}, +\code{\link{input_radio_buttons}()}, +\code{\link{input_select}()}, +\code{\link{input_selectize}()}, +\code{\link{input_slider}()}, +\code{\link{input_text}()}, +\code{\link{input_text_area}()} +} +\concept{Shiny input aliases} diff --git a/man/input_action_link.Rd b/man/input_action_link.Rd new file mode 100644 index 000000000..d4be4bf5d --- /dev/null +++ b/man/input_action_link.Rd @@ -0,0 +1,58 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/shiny-input_action_link.R +\name{input_action_link} +\alias{input_action_link} +\title{Action button/link} +\usage{ +input_action_link(id, label, icon = NULL, ...) +} +\arguments{ +\item{id}{An input id.} + +\item{label}{The contents of the button or link--usually a text label, but +you could also use any other HTML, like an image.} + +\item{icon}{An optional \code{\link[shiny:icon]{icon()}} to appear on the button.} + +\item{...}{Named attributes to be applied to the button or link.} +} +\description{ +Creates an action button or link whose value is initially zero, and increments by one +each time it is pressed. +} +\section{Aliased from Shiny}{ + This function is an alias for \code{shiny::actionLink()} and is included to maintain more consistent naming conventions in Shiny apps that use \pkg{bslib}. The documentation on this page may still refer to the original function names. You can replace \code{shiny::actionLink()} with \code{input_action_link()}. +} + +\section{Server value}{ + + +An integer of class \code{"shinyActionButtonValue"}. This class differs from +ordinary integers in that a value of 0 is considered "falsy". +This implies two things: +\itemize{ +\item Event handlers (e.g., \code{\link[shiny:observeEvent]{observeEvent()}}, \code{\link[shiny:eventReactive]{eventReactive()}}) won't execute on initial load. +\item Input validation (e.g., \code{\link[shiny:req]{req()}}, \code{\link[shiny:need]{need()}}) will fail on initial load. +} + +} + +\seealso{ +\code{\link[=update_action_link]{update_action_link()}} to programmatically update an action link. + +Other Shiny input aliases: +\code{\link{input_action_button}()}, +\code{\link{input_checkbox}()}, +\code{\link{input_checkbox_group}()}, +\code{\link{input_date}()}, +\code{\link{input_date_range}()}, +\code{\link{input_numeric}()}, +\code{\link{input_password}()}, +\code{\link{input_radio_buttons}()}, +\code{\link{input_select}()}, +\code{\link{input_selectize}()}, +\code{\link{input_slider}()}, +\code{\link{input_text}()}, +\code{\link{input_text_area}()} +} +\concept{Shiny input aliases} diff --git a/man/input_checkbox.Rd b/man/input_checkbox.Rd new file mode 100644 index 000000000..53094c472 --- /dev/null +++ b/man/input_checkbox.Rd @@ -0,0 +1,56 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/shiny-input_checkbox.R +\name{input_checkbox} +\alias{input_checkbox} +\title{Checkbox Input Control} +\usage{ +input_checkbox(id, label, value = FALSE, ..., width = NULL) +} +\arguments{ +\item{id}{An input id.} + +\item{label}{Display label for the control, or \code{NULL} for no label.} + +\item{value}{Initial value (\code{TRUE} or \code{FALSE}).} + +\item{...}{Ignored, included for future expansion.} + +\item{width}{The width of the input, e.g. \code{'400px'}, or \code{'100\%'}; +see \code{\link[shiny:validateCssUnit]{validateCssUnit()}}.} +} +\value{ +A checkbox control that can be added to a UI definition. +} +\description{ +Create a checkbox that can be used to specify logical values. +} +\section{Aliased from Shiny}{ + This function is an alias for \code{shiny::checkboxInput()} and is included to maintain more consistent naming conventions in Shiny apps that use \pkg{bslib}. The documentation on this page may still refer to the original function names. You can replace \code{shiny::checkboxInput()} with \code{input_checkbox()}. +} + +\section{Server value}{ + + +\code{TRUE} if checked, \code{FALSE} otherwise. + +} + +\seealso{ +\code{\link[=update_checkbox]{update_checkbox()}} to programmatically update a checkbox. + +Other Shiny input aliases: +\code{\link{input_action_button}()}, +\code{\link{input_action_link}()}, +\code{\link{input_checkbox_group}()}, +\code{\link{input_date}()}, +\code{\link{input_date_range}()}, +\code{\link{input_numeric}()}, +\code{\link{input_password}()}, +\code{\link{input_radio_buttons}()}, +\code{\link{input_select}()}, +\code{\link{input_selectize}()}, +\code{\link{input_slider}()}, +\code{\link{input_text}()}, +\code{\link{input_text_area}()} +} +\concept{Shiny input aliases} diff --git a/man/input_checkbox_group.Rd b/man/input_checkbox_group.Rd new file mode 100644 index 000000000..cdee64856 --- /dev/null +++ b/man/input_checkbox_group.Rd @@ -0,0 +1,87 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/shiny-input_checkbox_group.R +\name{input_checkbox_group} +\alias{input_checkbox_group} +\title{Checkbox Group Input Control} +\usage{ +input_checkbox_group( + id, + label, + choices = NULL, + selected = NULL, + ..., + inline = FALSE, + width = NULL, + choiceNames = NULL, + choiceValues = NULL +) +} +\arguments{ +\item{id}{An input id.} + +\item{label}{Display label for the control, or \code{NULL} for no label.} + +\item{choices}{List of values to show checkboxes for. If elements of the list +are named then that name rather than the value is displayed to the user. If +this argument is provided, then \code{choiceNames} and \code{choiceValues} +must not be provided, and vice-versa. The values should be strings; other +types (such as logicals and numbers) will be coerced to strings.} + +\item{selected}{The values that should be initially selected, if any.} + +\item{...}{Ignored, included for future expansion.} + +\item{inline}{If \code{TRUE}, render the choices inline (i.e. horizontally)} + +\item{width}{The width of the input, e.g. \code{'400px'}, or \code{'100\%'}; +see \code{\link[shiny:validateCssUnit]{validateCssUnit()}}.} + +\item{choiceNames, choiceValues}{List of names and values, respectively, +that are displayed to the user in the app and correspond to the each +choice (for this reason, \code{choiceNames} and \code{choiceValues} +must have the same length). If either of these arguments is +provided, then the other \emph{must} be provided and \code{choices} +\emph{must not} be provided. The advantage of using both of these over +a named list for \code{choices} is that \code{choiceNames} allows any +type of UI object to be passed through (tag objects, icons, HTML code, +...), instead of just simple text. See Examples.} +} +\value{ +A list of HTML elements that can be added to a UI definition. +} +\description{ +Create a group of checkboxes that can be used to toggle multiple choices +independently. The server will receive the input as a character vector of the +selected values. +} +\section{Aliased from Shiny}{ + This function is an alias for \code{shiny::checkboxGroupInput()} and is included to maintain more consistent naming conventions in Shiny apps that use \pkg{bslib}. The documentation on this page may still refer to the original function names. You can replace \code{shiny::checkboxGroupInput()} with \code{input_checkbox_group()}. +} + +\section{Server value}{ + + +Character vector of values corresponding to the boxes that are checked. + +} + +\seealso{ +\code{\link[=update_checkbox_group]{update_checkbox_group()}} to programmatically update a checkbox +group. + +Other Shiny input aliases: +\code{\link{input_action_button}()}, +\code{\link{input_action_link}()}, +\code{\link{input_checkbox}()}, +\code{\link{input_date}()}, +\code{\link{input_date_range}()}, +\code{\link{input_numeric}()}, +\code{\link{input_password}()}, +\code{\link{input_radio_buttons}()}, +\code{\link{input_select}()}, +\code{\link{input_selectize}()}, +\code{\link{input_slider}()}, +\code{\link{input_text}()}, +\code{\link{input_text_area}()} +} +\concept{Shiny input aliases} diff --git a/man/input_date.Rd b/man/input_date.Rd new file mode 100644 index 000000000..a0e1479ed --- /dev/null +++ b/man/input_date.Rd @@ -0,0 +1,121 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/shiny-input_date.R +\name{input_date} +\alias{input_date} +\title{Create date input} +\usage{ +input_date( + id, + label, + value = NULL, + ..., + min = NULL, + max = NULL, + format = "yyyy-mm-dd", + startview = "month", + weekstart = 0, + language = "en", + width = NULL, + autoclose = TRUE, + datesdisabled = NULL, + daysofweekdisabled = NULL +) +} +\arguments{ +\item{id}{An input id.} + +\item{label}{Display label for the control, or \code{NULL} for no label.} + +\item{value}{The starting date. Either a Date object, or a string in +\code{yyyy-mm-dd} format. If NULL (the default), will use the current date +in the client's time zone.} + +\item{...}{Ignored, included for future expansion.} + +\item{min}{The minimum allowed date. Either a Date object, or a string in +\code{yyyy-mm-dd} format.} + +\item{max}{The maximum allowed date. Either a Date object, or a string in +\code{yyyy-mm-dd} format.} + +\item{format}{The format of the date to display in the browser. Defaults to +\code{"yyyy-mm-dd"}.} + +\item{startview}{The date range shown when the input object is first clicked. +Can be "month" (the default), "year", or "decade".} + +\item{weekstart}{Which day is the start of the week. Should be an integer +from 0 (Sunday) to 6 (Saturday).} + +\item{language}{The language used for month and day names. Default is "en". +Other valid values include "ar", "az", "bg", "bs", "ca", "cs", "cy", "da", +"de", "el", "en-AU", "en-GB", "eo", "es", "et", "eu", "fa", "fi", "fo", +"fr-CH", "fr", "gl", "he", "hr", "hu", "hy", "id", "is", "it-CH", "it", +"ja", "ka", "kh", "kk", "ko", "kr", "lt", "lv", "me", "mk", "mn", "ms", +"nb", "nl-BE", "nl", "no", "pl", "pt-BR", "pt", "ro", "rs-latin", "rs", +"ru", "sk", "sl", "sq", "sr-latin", "sr", "sv", "sw", "th", "tr", "uk", +"vi", "zh-CN", and "zh-TW".} + +\item{width}{The width of the input, e.g. \code{'400px'}, or \code{'100\%'}; +see \code{\link[shiny:validateCssUnit]{validateCssUnit()}}.} + +\item{autoclose}{Whether or not to close the datepicker immediately when a +date is selected.} + +\item{datesdisabled}{Which dates should be disabled. Either a Date object, +or a string in \code{yyyy-mm-dd} format.} + +\item{daysofweekdisabled}{Days of the week that should be disabled. Should be +a integer vector with values from 0 (Sunday) to 6 (Saturday).} +} +\description{ +Creates a text input which, when clicked on, brings up a calendar that +the user can click on to select dates. +} +\details{ +The date \code{format} string specifies how the date will be displayed in +the browser. It allows the following values: + +\itemize{ +\item \code{yy} Year without century (12) +\item \code{yyyy} Year with century (2012) +\item \code{mm} Month number, with leading zero (01-12) +\item \code{m} Month number, without leading zero (1-12) +\item \code{M} Abbreviated month name +\item \code{MM} Full month name +\item \code{dd} Day of month with leading zero +\item \code{d} Day of month without leading zero +\item \code{D} Abbreviated weekday name +\item \code{DD} Full weekday name +} +} +\section{Aliased from Shiny}{ + This function is an alias for \code{shiny::dateInput()} and is included to maintain more consistent naming conventions in Shiny apps that use \pkg{bslib}. The documentation on this page may still refer to the original function names. You can replace \code{shiny::dateInput()} with \code{input_date()}. +} + +\section{Server value}{ + + +A \link{Date} vector of length 1. + +} + +\seealso{ +\code{\link[=update_date]{update_date()}} to programmatically update a date input. + +Other Shiny input aliases: +\code{\link{input_action_button}()}, +\code{\link{input_action_link}()}, +\code{\link{input_checkbox}()}, +\code{\link{input_checkbox_group}()}, +\code{\link{input_date_range}()}, +\code{\link{input_numeric}()}, +\code{\link{input_password}()}, +\code{\link{input_radio_buttons}()}, +\code{\link{input_select}()}, +\code{\link{input_selectize}()}, +\code{\link{input_slider}()}, +\code{\link{input_text}()}, +\code{\link{input_text_area}()} +} +\concept{Shiny input aliases} diff --git a/man/input_date_range.Rd b/man/input_date_range.Rd new file mode 100644 index 000000000..888eac545 --- /dev/null +++ b/man/input_date_range.Rd @@ -0,0 +1,121 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/shiny-input_date_range.R +\name{input_date_range} +\alias{input_date_range} +\title{Create date range input} +\usage{ +input_date_range( + id, + label, + start = NULL, + end = NULL, + ..., + min = NULL, + max = NULL, + format = "yyyy-mm-dd", + startview = "month", + weekstart = 0, + language = "en", + separator = " to ", + width = NULL, + autoclose = TRUE +) +} +\arguments{ +\item{id}{An input id.} + +\item{label}{Display label for the control, or \code{NULL} for no label.} + +\item{start}{The initial start date. Either a Date object, or a string in +\code{yyyy-mm-dd} format. If NULL (the default), will use the current +date in the client's time zone.} + +\item{end}{The initial end date. Either a Date object, or a string in +\code{yyyy-mm-dd} format. If NULL (the default), will use the current +date in the client's time zone.} + +\item{...}{Ignored, included for future expansion.} + +\item{min}{The minimum allowed date. Either a Date object, or a string in +\code{yyyy-mm-dd} format.} + +\item{max}{The maximum allowed date. Either a Date object, or a string in +\code{yyyy-mm-dd} format.} + +\item{format}{The format of the date to display in the browser. Defaults to +\code{"yyyy-mm-dd"}.} + +\item{startview}{The date range shown when the input object is first clicked. +Can be "month" (the default), "year", or "decade".} + +\item{weekstart}{Which day is the start of the week. Should be an integer +from 0 (Sunday) to 6 (Saturday).} + +\item{language}{The language used for month and day names. Default is "en". +Other valid values include "ar", "az", "bg", "bs", "ca", "cs", "cy", "da", +"de", "el", "en-AU", "en-GB", "eo", "es", "et", "eu", "fa", "fi", "fo", +"fr-CH", "fr", "gl", "he", "hr", "hu", "hy", "id", "is", "it-CH", "it", +"ja", "ka", "kh", "kk", "ko", "kr", "lt", "lv", "me", "mk", "mn", "ms", +"nb", "nl-BE", "nl", "no", "pl", "pt-BR", "pt", "ro", "rs-latin", "rs", +"ru", "sk", "sl", "sq", "sr-latin", "sr", "sv", "sw", "th", "tr", "uk", +"vi", "zh-CN", and "zh-TW".} + +\item{separator}{String to display between the start and end input boxes.} + +\item{width}{The width of the input, e.g. \code{'400px'}, or \code{'100\%'}; +see \code{\link[shiny:validateCssUnit]{validateCssUnit()}}.} + +\item{autoclose}{Whether or not to close the datepicker immediately when a +date is selected.} +} +\description{ +Creates a pair of text inputs which, when clicked on, bring up calendars that +the user can click on to select dates. +} +\details{ +The date \code{format} string specifies how the date will be displayed in +the browser. It allows the following values: + +\itemize{ +\item \code{yy} Year without century (12) +\item \code{yyyy} Year with century (2012) +\item \code{mm} Month number, with leading zero (01-12) +\item \code{m} Month number, without leading zero (1-12) +\item \code{M} Abbreviated month name +\item \code{MM} Full month name +\item \code{dd} Day of month with leading zero +\item \code{d} Day of month without leading zero +\item \code{D} Abbreviated weekday name +\item \code{DD} Full weekday name +} +} +\section{Aliased from Shiny}{ + This function is an alias for \code{shiny::dateRangeInput()} and is included to maintain more consistent naming conventions in Shiny apps that use \pkg{bslib}. The documentation on this page may still refer to the original function names. You can replace \code{shiny::dateRangeInput()} with \code{input_date_range()}. +} + +\section{Server value}{ + + +A \link{Date} vector of length 2. + +} + +\seealso{ +\code{\link[=update_date_range]{update_date_range()}} to programmatically update a date range input. + +Other Shiny input aliases: +\code{\link{input_action_button}()}, +\code{\link{input_action_link}()}, +\code{\link{input_checkbox}()}, +\code{\link{input_checkbox_group}()}, +\code{\link{input_date}()}, +\code{\link{input_numeric}()}, +\code{\link{input_password}()}, +\code{\link{input_radio_buttons}()}, +\code{\link{input_select}()}, +\code{\link{input_selectize}()}, +\code{\link{input_slider}()}, +\code{\link{input_text}()}, +\code{\link{input_text_area}()} +} +\concept{Shiny input aliases} diff --git a/man/input_file.Rd b/man/input_file.Rd new file mode 100644 index 000000000..89bd057ed --- /dev/null +++ b/man/input_file.Rd @@ -0,0 +1,107 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/shiny-input_file.R +\name{input_file} +\alias{input_file} +\title{File Upload Control} +\usage{ +input_file( + id, + label, + ..., + multiple = FALSE, + accept = NULL, + width = NULL, + buttonLabel = "Browse...", + placeholder = "No file selected", + capture = NULL +) +} +\arguments{ +\item{id}{An input id.} + +\item{label}{Display label for the control, or \code{NULL} for no label.} + +\item{...}{Ignored, included for future expansion.} + +\item{multiple}{Whether the user should be allowed to select and upload +multiple files at once. \strong{Does not work on older browsers, including +Internet Explorer 9 and earlier.}} + +\item{accept}{A character vector of "unique file type specifiers" which gives +the browser a hint as to the type of file the server expects. Many browsers +use this prevent the user from selecting an invalid file. + +A unique file type specifier can be: +\itemize{ +\item A case insensitive extension like \code{.csv} or \code{.rds}. +\item A valid MIME type, like \code{text/plain} or \code{application/pdf} +\item One of \verb{audio/*}, \verb{video/*}, or \verb{image/*} meaning any audio, video, +or image type, respectively. +}} + +\item{width}{The width of the input, e.g. \code{'400px'}, or \code{'100\%'}; +see \code{\link[shiny:validateCssUnit]{validateCssUnit()}}.} + +\item{buttonLabel}{The label used on the button. Can be text or an HTML tag +object.} + +\item{placeholder}{The text to show before a file has been uploaded.} + +\item{capture}{What source to use for capturing image, audio or video data. +This attribute facilitates user access to a device's media capture +mechanism, such as a camera, or microphone, from within a file upload +control. + +A value of \code{user} indicates that the user-facing camera and/or microphone +should be used. A value of \code{environment} specifies that the outward-facing +camera and/or microphone should be used. + +By default on most phones, this will accept still photos or video. For +still photos only, also use \code{accept="image/*"}. For video only, use +\code{accept="video/*"}.} +} +\description{ +Create a file upload control that can be used to upload one or more files. +} +\details{ +Whenever a file upload completes, the corresponding input variable is set to +a dataframe. See the \verb{Server value} section. + +Each time files are uploaded, they are written to a new random subdirectory +inside of R's process-level temporary directory. The Shiny user session keeps +track of all uploads in the session, and when the session ends, Shiny deletes +all of the subdirectories where files where uploaded to. +} +\section{Aliased from Shiny}{ + This function is an alias for \code{shiny::fileInput()} and is included to maintain more consistent naming conventions in Shiny apps that use \pkg{bslib}. The documentation on this page may still refer to the original function names. You can replace \code{shiny::fileInput()} with \code{input_file()}. +} + +\section{Server value}{ + + + +A \code{data.frame} that contains one row for each selected file, and following +columns: +\describe{ +\item{\code{name}}{The filename provided by the web browser. This is +\strong{not} the path to read to get at the actual data that was uploaded +(see +\code{datapath} column).} +\item{\code{size}}{The size of the uploaded data, in +bytes.} +\item{\code{type}}{The MIME type reported by the browser (for example, +\code{text/plain}), or empty string if the browser didn't know.} +\item{\code{datapath}}{The path to a temp file that contains the data that was +uploaded. This file may be deleted if the user performs another upload +operation.} +} + +} + +\seealso{ +Other Shiny upload/download aliases: +\code{\link{download_button}()}, +\code{\link{download_handler}()}, +\code{\link{download_link}()} +} +\concept{Shiny upload/download aliases} diff --git a/man/input_numeric.Rd b/man/input_numeric.Rd new file mode 100644 index 000000000..5209e3efd --- /dev/null +++ b/man/input_numeric.Rd @@ -0,0 +1,71 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/shiny-input_numeric.R +\name{input_numeric} +\alias{input_numeric} +\title{Create a numeric input control} +\usage{ +input_numeric( + id, + label, + value, + ..., + min = NA, + max = NA, + step = NA, + width = NULL +) +} +\arguments{ +\item{id}{An input id.} + +\item{label}{Display label for the control, or \code{NULL} for no label.} + +\item{value}{Initial value.} + +\item{...}{Ignored, included for future expansion.} + +\item{min}{Minimum allowed value} + +\item{max}{Maximum allowed value} + +\item{step}{Interval to use when stepping between min and max} + +\item{width}{The width of the input, e.g. \code{'400px'}, or \code{'100\%'}; +see \code{\link[shiny:validateCssUnit]{validateCssUnit()}}.} +} +\value{ +A numeric input control that can be added to a UI definition. +} +\description{ +Create an input control for entry of numeric values +} +\section{Aliased from Shiny}{ + This function is an alias for \code{shiny::numericInput()} and is included to maintain more consistent naming conventions in Shiny apps that use \pkg{bslib}. The documentation on this page may still refer to the original function names. You can replace \code{shiny::numericInput()} with \code{input_numeric()}. +} + +\section{Server value}{ + + +A numeric vector of length 1. + +} + +\seealso{ +\code{\link[=update_numeric]{update_numeric()}} to programmatically update a numeric input. + +Other Shiny input aliases: +\code{\link{input_action_button}()}, +\code{\link{input_action_link}()}, +\code{\link{input_checkbox}()}, +\code{\link{input_checkbox_group}()}, +\code{\link{input_date}()}, +\code{\link{input_date_range}()}, +\code{\link{input_password}()}, +\code{\link{input_radio_buttons}()}, +\code{\link{input_select}()}, +\code{\link{input_selectize}()}, +\code{\link{input_slider}()}, +\code{\link{input_text}()}, +\code{\link{input_text_area}()} +} +\concept{Shiny input aliases} diff --git a/man/input_password.Rd b/man/input_password.Rd new file mode 100644 index 000000000..e6e29246e --- /dev/null +++ b/man/input_password.Rd @@ -0,0 +1,61 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/shiny-input_password.R +\name{input_password} +\alias{input_password} +\title{Create a password input control} +\usage{ +input_password(id, label, value = "", ..., width = NULL, placeholder = NULL) +} +\arguments{ +\item{id}{An input id.} + +\item{label}{Display label for the control, or \code{NULL} for no label.} + +\item{value}{Initial value.} + +\item{...}{Ignored, included for future expansion.} + +\item{width}{The width of the input, e.g. \code{'400px'}, or \code{'100\%'}; +see \code{\link[shiny:validateCssUnit]{validateCssUnit()}}.} + +\item{placeholder}{A character string giving the user a hint as to what can +be entered into the control. Internet Explorer 8 and 9 do not support this +option.} +} +\value{ +A text input control that can be added to a UI definition. +} +\description{ +Create an password control for entry of passwords. +} +\section{Aliased from Shiny}{ + This function is an alias for \code{shiny::passwordInput()} and is included to maintain more consistent naming conventions in Shiny apps that use \pkg{bslib}. The documentation on this page may still refer to the original function names. You can replace \code{shiny::passwordInput()} with \code{input_password()}. +} + +\section{Server value}{ + + +A character string of the password input. The default value is \code{""} +unless \code{value} is provided. + +} + +\seealso{ +\code{\link[=update_text]{update_text()}} is used to programmatically update a password input. + +Other Shiny input aliases: +\code{\link{input_action_button}()}, +\code{\link{input_action_link}()}, +\code{\link{input_checkbox}()}, +\code{\link{input_checkbox_group}()}, +\code{\link{input_date}()}, +\code{\link{input_date_range}()}, +\code{\link{input_numeric}()}, +\code{\link{input_radio_buttons}()}, +\code{\link{input_select}()}, +\code{\link{input_selectize}()}, +\code{\link{input_slider}()}, +\code{\link{input_text}()}, +\code{\link{input_text_area}()} +} +\concept{Shiny input aliases} diff --git a/man/input_radio_buttons.Rd b/man/input_radio_buttons.Rd new file mode 100644 index 000000000..dde294fcb --- /dev/null +++ b/man/input_radio_buttons.Rd @@ -0,0 +1,93 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/shiny-input_radio_buttons.R +\name{input_radio_buttons} +\alias{input_radio_buttons} +\title{Create radio buttons} +\usage{ +input_radio_buttons( + id, + label, + choices = NULL, + selected = NULL, + ..., + inline = FALSE, + width = NULL, + choiceNames = NULL, + choiceValues = NULL +) +} +\arguments{ +\item{id}{An input id.} + +\item{label}{Display label for the control, or \code{NULL} for no label.} + +\item{choices}{List of values to select from (if elements of the list are +named then that name rather than the value is displayed to the user). If +this argument is provided, then \code{choiceNames} and \code{choiceValues} must not +be provided, and vice-versa. The values should be strings; other types +(such as logicals and numbers) will be coerced to strings.} + +\item{selected}{The initially selected value. If not specified, then it +defaults to the first item in \code{choices}. To start with no items selected, +use \code{character(0)}.} + +\item{...}{Ignored, included for future expansion.} + +\item{inline}{If \code{TRUE}, render the choices inline (i.e. horizontally)} + +\item{width}{The width of the input, e.g. \code{'400px'}, or \code{'100\%'}; +see \code{\link[shiny:validateCssUnit]{validateCssUnit()}}.} + +\item{choiceNames, choiceValues}{List of names and values, respectively, that +are displayed to the user in the app and correspond to the each choice (for +this reason, \code{choiceNames} and \code{choiceValues} must have the same length). +If either of these arguments is provided, then the other \emph{must} be provided +and \code{choices} \emph{must not} be provided. The advantage of using both of these +over a named list for \code{choices} is that \code{choiceNames} allows any type of UI +object to be passed through (tag objects, icons, HTML code, ...), instead +of just simple text. See Examples.} +} +\value{ +A set of radio buttons that can be added to a UI definition. +} +\description{ +Create a set of radio buttons used to select an item from a list. +} +\details{ +If you need to represent a "None selected" state, it's possible to default +the radio buttons to have no options selected by using \code{selected = character(0)}. However, this is not recommended, as it gives the user no way +to return to that state once they've made a selection. Instead, consider +having the first of your choices be \code{c("None selected" = "")}. +} +\section{Aliased from Shiny}{ + This function is an alias for \code{shiny::radioButtons()} and is included to maintain more consistent naming conventions in Shiny apps that use \pkg{bslib}. The documentation on this page may still refer to the original function names. You can replace \code{shiny::radioButtons()} with \code{input_radio_buttons()}. +} + +\section{Server value}{ + + + +A character string containing the value of the selected button. + +} + +\seealso{ +\code{\link[=update_radio_buttons]{update_radio_buttons()}} to programmatically update a radio button +input. + +Other Shiny input aliases: +\code{\link{input_action_button}()}, +\code{\link{input_action_link}()}, +\code{\link{input_checkbox}()}, +\code{\link{input_checkbox_group}()}, +\code{\link{input_date}()}, +\code{\link{input_date_range}()}, +\code{\link{input_numeric}()}, +\code{\link{input_password}()}, +\code{\link{input_select}()}, +\code{\link{input_selectize}()}, +\code{\link{input_slider}()}, +\code{\link{input_text}()}, +\code{\link{input_text_area}()} +} +\concept{Shiny input aliases} diff --git a/man/input_select.Rd b/man/input_select.Rd new file mode 100644 index 000000000..a5defe29b --- /dev/null +++ b/man/input_select.Rd @@ -0,0 +1,109 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/shiny-input_select.R +\name{input_select} +\alias{input_select} +\title{Create a select list input control} +\usage{ +input_select( + id, + label, + choices, + selected = NULL, + ..., + multiple = FALSE, + selectize = FALSE, + width = NULL, + size = NULL +) +} +\arguments{ +\item{id}{An input id.} + +\item{label}{Display label for the control, or \code{NULL} for no label.} + +\item{choices}{List of values to select from. If elements of the list are +named, then that name --- rather than the value --- is displayed to the +user. It's also possible to group related inputs by providing a named list +whose elements are (either named or unnamed) lists, vectors, or factors. In +this case, the outermost names will be used as the group labels (leveraging +the \verb{} HTML tag) for the elements in the respective sublist. See +the example section for a small demo of this feature.} + +\item{selected}{The initially selected value (or multiple values if \code{multiple = TRUE}). If not specified then defaults to the first value for +single-select lists and no values for multiple select lists.} + +\item{...}{Ignored, included for future expansion.} + +\item{multiple}{Is selection of multiple items allowed?} + +\item{selectize}{Whether to use \pkg{selectize.js} or not.} + +\item{width}{The width of the input, e.g. \code{'400px'}, or \code{'100\%'}; +see \code{\link[shiny:validateCssUnit]{validateCssUnit()}}.} + +\item{size}{Number of items to show in the selection box; a larger number +will result in a taller box. Not compatible with \code{selectize=TRUE}. +Normally, when \code{multiple=FALSE}, a select input will be a drop-down list, +but when \code{size} is set, it will be a box instead.} +} +\value{ +A select list control that can be added to a UI definition. +} +\description{ +Create a select list that can be used to choose a single or multiple items +from a list of values. +} +\details{ +By default, \code{selectInput()} and \code{selectizeInput()} use the JavaScript library +\pkg{selectize.js} (\url{https://selectize.dev/}) instead of +the basic select input element. To use the standard HTML select input +element, use \code{selectInput()} with \code{selectize=FALSE}. + +In selectize mode, if the first element in \code{choices} has a value of \code{""}, its +name will be treated as a placeholder prompt. For example: +\code{selectInput("letter", "Letter", c("Choose one" = "", LETTERS))} + +\strong{Performance note:} \code{selectInput()} and \code{selectizeInput()} can slow down +significantly when thousands of choices are used; with legacy browsers like +Internet Explorer, the user interface may hang for many seconds. For large +numbers of choices, Shiny offers a "server-side selectize" option that +massively improves performance and efficiency; see +\href{https://shiny.rstudio.com/articles/selectize.html}{this selectize article} +on the Shiny Dev Center for details. +} +\section{Aliased from Shiny}{ + +This function is an alias for \code{shiny::selectInput()} and is included to maintain more consistent naming conventions in Shiny apps that use \pkg{bslib}. The documentation on this page may still refer to the original function names. You can replace \code{shiny::selectInput()} with \code{input_select()}. + +Note that, unlike in \code{\link[shiny:selectInput]{shiny::selectInput()}}, \code{input_select()} does not +use selectize.js by default. Insttead, set \code{selectize = TRUE} or call +\code{\link[=input_selectize]{input_selectize()}} directly. +} + +\section{Server value}{ + + A vector of character strings, usually of length +1, with the value of the selected items. When \code{multiple=TRUE} and +nothing is selected, this value will be \code{NULL}. + +} + +\seealso{ +\code{\link[=update_select]{update_select()}} to programmatically update a select input. + +Other Shiny input aliases: +\code{\link{input_action_button}()}, +\code{\link{input_action_link}()}, +\code{\link{input_checkbox}()}, +\code{\link{input_checkbox_group}()}, +\code{\link{input_date}()}, +\code{\link{input_date_range}()}, +\code{\link{input_numeric}()}, +\code{\link{input_password}()}, +\code{\link{input_radio_buttons}()}, +\code{\link{input_selectize}()}, +\code{\link{input_slider}()}, +\code{\link{input_text}()}, +\code{\link{input_text_area}()} +} +\concept{Shiny input aliases} diff --git a/man/input_selectize.Rd b/man/input_selectize.Rd new file mode 100644 index 000000000..715c2b278 --- /dev/null +++ b/man/input_selectize.Rd @@ -0,0 +1,77 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/shiny-input_selectize.R +\name{input_selectize} +\alias{input_selectize} +\title{Create a select list input control} +\usage{ +input_selectize(id, ..., options = NULL, width = NULL) +} +\arguments{ +\item{id}{An input id.} + +\item{...}{Ignored, included for future expansion.} + +\item{options}{A list of options. See the documentation of \pkg{selectize.js}(\url{https://selectize.dev/docs/usage}) +for possible options (character option values inside \code{\link[base:AsIs]{base::I()}} will +be treated as literal JavaScript code; see \code{\link[shiny:renderDataTable]{renderDataTable()}} +for details).} + +\item{width}{The width of the input, e.g. \code{'400px'}, or \code{'100\%'}; +see \code{\link[shiny:validateCssUnit]{validateCssUnit()}}.} +} +\value{ +A select list control that can be added to a UI definition. +} +\description{ +Create a select list that can be used to choose a single or multiple items +from a list of values. +} +\details{ +By default, \code{selectInput()} and \code{selectizeInput()} use the JavaScript library +\pkg{selectize.js} (\url{https://selectize.dev/}) instead of +the basic select input element. To use the standard HTML select input +element, use \code{selectInput()} with \code{selectize=FALSE}. + +In selectize mode, if the first element in \code{choices} has a value of \code{""}, its +name will be treated as a placeholder prompt. For example: +\code{selectInput("letter", "Letter", c("Choose one" = "", LETTERS))} + +\strong{Performance note:} \code{selectInput()} and \code{selectizeInput()} can slow down +significantly when thousands of choices are used; with legacy browsers like +Internet Explorer, the user interface may hang for many seconds. For large +numbers of choices, Shiny offers a "server-side selectize" option that +massively improves performance and efficiency; see +\href{https://shiny.rstudio.com/articles/selectize.html}{this selectize article} +on the Shiny Dev Center for details. +} +\section{Aliased from Shiny}{ + This function is an alias for \code{shiny::selectizeInput()} and is included to maintain more consistent naming conventions in Shiny apps that use \pkg{bslib}. The documentation on this page may still refer to the original function names. You can replace \code{shiny::selectizeInput()} with \code{input_selectize()}. +} + +\section{Server value}{ + + A vector of character strings, usually of length +1, with the value of the selected items. When \code{multiple=TRUE} and +nothing is selected, this value will be \code{NULL}. + +} + +\seealso{ +\code{\link[=update_selectize]{update_selectize()}} to programmatically update a selectize input. + +Other Shiny input aliases: +\code{\link{input_action_button}()}, +\code{\link{input_action_link}()}, +\code{\link{input_checkbox}()}, +\code{\link{input_checkbox_group}()}, +\code{\link{input_date}()}, +\code{\link{input_date_range}()}, +\code{\link{input_numeric}()}, +\code{\link{input_password}()}, +\code{\link{input_radio_buttons}()}, +\code{\link{input_select}()}, +\code{\link{input_slider}()}, +\code{\link{input_text}()}, +\code{\link{input_text_area}()} +} +\concept{Shiny input aliases} diff --git a/man/input_slider.Rd b/man/input_slider.Rd new file mode 100644 index 000000000..6bd4d357f --- /dev/null +++ b/man/input_slider.Rd @@ -0,0 +1,122 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/shiny-input_slider.R +\name{input_slider} +\alias{input_slider} +\title{Slider Input Widget} +\usage{ +input_slider( + id, + label, + min, + max, + value, + ..., + step = NULL, + round = FALSE, + ticks = TRUE, + animate = FALSE, + width = NULL, + sep = ",", + pre = NULL, + post = NULL, + timeFormat = NULL, + timezone = NULL, + dragRange = TRUE +) +} +\arguments{ +\item{id}{An input id.} + +\item{label}{Display label for the control, or \code{NULL} for no label.} + +\item{min, max}{The minimum and maximum values (inclusive) that can be +selected.} + +\item{value}{The initial value of the slider, either a number, a date +(class Date), or a date-time (class POSIXt). A length one vector will +create a regular slider; a length two vector will create a double-ended +range slider. Must lie between \code{min} and \code{max}.} + +\item{...}{Ignored, included for future expansion.} + +\item{step}{Specifies the interval between each selectable value on the +slider. Either \code{NULL}, the default, which uses a heuristic to determine the +step size or a single number. If the values are dates, \code{step} is in days; +if the values are date-times, \code{step} is in seconds.} + +\item{round}{\code{TRUE} to round all values to the nearest integer; +\code{FALSE} if no rounding is desired; or an integer to round to that +number of digits (for example, 1 will round to the nearest 10, and -2 will +round to the nearest .01). Any rounding will be applied after snapping to +the nearest step.} + +\item{ticks}{\code{FALSE} to hide tick marks, \code{TRUE} to show them +according to some simple heuristics.} + +\item{animate}{\code{TRUE} to show simple animation controls with default +settings; \code{FALSE} not to; or a custom settings list, such as those +created using \code{\link[shiny:animationOptions]{animationOptions()}}.} + +\item{width}{The width of the input, e.g. \code{'400px'}, or \code{'100\%'}; +see \code{\link[shiny:validateCssUnit]{validateCssUnit()}}.} + +\item{sep}{Separator between thousands places in numbers.} + +\item{pre}{A prefix string to put in front of the value.} + +\item{post}{A suffix string to put after the value.} + +\item{timeFormat}{Only used if the values are Date or POSIXt objects. A time +format string, to be passed to the Javascript strftime library. See +\url{https://github.com/samsonjs/strftime} for more details. The allowed +format specifications are very similar, but not identical, to those for R's +\code{\link[base:strptime]{base::strftime()}} function. For Dates, the default is \code{"\%F"} +(like \code{"2015-07-01"}), and for POSIXt, the default is \code{"\%F \%T"} +(like \code{"2015-07-01 15:32:10"}).} + +\item{timezone}{Only used if the values are POSIXt objects. A string +specifying the time zone offset for the displayed times, in the format +\code{"+HHMM"} or \code{"-HHMM"}. If \code{NULL} (the default), times will +be displayed in the browser's time zone. The value \code{"+0000"} will +result in UTC time.} + +\item{dragRange}{This option is used only if it is a range slider (with two +values). If \code{TRUE} (the default), the range can be dragged. In other +words, the min and max can be dragged together. If \code{FALSE}, the range +cannot be dragged.} +} +\description{ +Constructs a slider widget to select a number, date, or date-time from a +range. +} +\section{Aliased from Shiny}{ + This function is an alias for \code{shiny::sliderInput()} and is included to maintain more consistent naming conventions in Shiny apps that use \pkg{bslib}. The documentation on this page may still refer to the original function names. You can replace \code{shiny::sliderInput()} with \code{input_slider()}. +} + +\section{Server value}{ + + +A number, date, or date-time (depending on the class of \code{value}), or +in the case of slider range, a vector of two numbers/dates/date-times. + +} + +\seealso{ +\code{\link[=update_slider]{update_slider()}} to programmatically update a slider input. + +Other Shiny input aliases: +\code{\link{input_action_button}()}, +\code{\link{input_action_link}()}, +\code{\link{input_checkbox}()}, +\code{\link{input_checkbox_group}()}, +\code{\link{input_date}()}, +\code{\link{input_date_range}()}, +\code{\link{input_numeric}()}, +\code{\link{input_password}()}, +\code{\link{input_radio_buttons}()}, +\code{\link{input_select}()}, +\code{\link{input_selectize}()}, +\code{\link{input_text}()}, +\code{\link{input_text_area}()} +} +\concept{Shiny input aliases} diff --git a/man/input_text.Rd b/man/input_text.Rd new file mode 100644 index 000000000..611a95c5a --- /dev/null +++ b/man/input_text.Rd @@ -0,0 +1,61 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/shiny-input_text.R +\name{input_text} +\alias{input_text} +\title{Create a text input control} +\usage{ +input_text(id, label, value = "", ..., width = NULL, placeholder = NULL) +} +\arguments{ +\item{id}{An input id.} + +\item{label}{Display label for the control, or \code{NULL} for no label.} + +\item{value}{Initial value.} + +\item{...}{Ignored, included for future expansion.} + +\item{width}{The width of the input, e.g. \code{'400px'}, or \code{'100\%'}; +see \code{\link[shiny:validateCssUnit]{validateCssUnit()}}.} + +\item{placeholder}{A character string giving the user a hint as to what can +be entered into the control. Internet Explorer 8 and 9 do not support this +option.} +} +\value{ +A text input control that can be added to a UI definition. +} +\description{ +Create an input control for entry of unstructured text values +} +\section{Aliased from Shiny}{ + This function is an alias for \code{shiny::textInput()} and is included to maintain more consistent naming conventions in Shiny apps that use \pkg{bslib}. The documentation on this page may still refer to the original function names. You can replace \code{shiny::textInput()} with \code{input_text()}. +} + +\section{Server value}{ + + +A character string of the text input. The default value is \code{""} +unless \code{value} is provided. + +} + +\seealso{ +\code{\link[=update_text]{update_text()}} to programmatically update a text input. + +Other Shiny input aliases: +\code{\link{input_action_button}()}, +\code{\link{input_action_link}()}, +\code{\link{input_checkbox}()}, +\code{\link{input_checkbox_group}()}, +\code{\link{input_date}()}, +\code{\link{input_date_range}()}, +\code{\link{input_numeric}()}, +\code{\link{input_password}()}, +\code{\link{input_radio_buttons}()}, +\code{\link{input_select}()}, +\code{\link{input_selectize}()}, +\code{\link{input_slider}()}, +\code{\link{input_text_area}()} +} +\concept{Shiny input aliases} diff --git a/man/input_text_area.Rd b/man/input_text_area.Rd new file mode 100644 index 000000000..2f15c8115 --- /dev/null +++ b/man/input_text_area.Rd @@ -0,0 +1,89 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/shiny-input_text_area.R +\name{input_text_area} +\alias{input_text_area} +\title{Create a textarea input control} +\usage{ +input_text_area( + id, + label, + value = "", + ..., + width = NULL, + height = NULL, + cols = NULL, + rows = NULL, + placeholder = NULL, + resize = NULL +) +} +\arguments{ +\item{id}{An input id.} + +\item{label}{Display label for the control, or \code{NULL} for no label.} + +\item{value}{Initial value.} + +\item{...}{Ignored, included for future expansion.} + +\item{width}{The width of the input, e.g. \code{'400px'}, or \code{'100\%'}; +see \code{\link[shiny:validateCssUnit]{validateCssUnit()}}.} + +\item{height}{The height of the input, e.g. \code{'400px'}, or \code{'100\%'}; see +\code{\link[shiny:validateCssUnit]{validateCssUnit()}}.} + +\item{cols}{Value of the visible character columns of the input, e.g. \code{80}. +This argument will only take effect if there is not a CSS \code{width} rule +defined for this element; such a rule could come from the \code{width} argument +of this function or from a containing page layout such as +\code{\link[shiny:fluidPage]{fluidPage()}}.} + +\item{rows}{The value of the visible character rows of the input, e.g. \code{6}. +If the \code{height} argument is specified, \code{height} will take precedence in the +browser's rendering.} + +\item{placeholder}{A character string giving the user a hint as to what can +be entered into the control. Internet Explorer 8 and 9 do not support this +option.} + +\item{resize}{Which directions the textarea box can be resized. Can be one of +\code{"both"}, \code{"none"}, \code{"vertical"}, and \code{"horizontal"}. The default, \code{NULL}, +will use the client browser's default setting for resizing textareas.} +} +\value{ +A textarea input control that can be added to a UI definition. +} +\description{ +Create a textarea input control for entry of unstructured text values. +} +\section{Aliased from Shiny}{ + This function is an alias for \code{shiny::textAreaInput()} and is included to maintain more consistent naming conventions in Shiny apps that use \pkg{bslib}. The documentation on this page may still refer to the original function names. You can replace \code{shiny::textAreaInput()} with \code{input_text_area()}. +} + +\section{Server value}{ + + +A character string of the text input. The default value is \code{""} +unless \code{value} is provided. + +} + +\seealso{ +\code{\link[=update_text_area]{update_text_area()}} to programmatically update a text area input. + +Other Shiny input aliases: +\code{\link{input_action_button}()}, +\code{\link{input_action_link}()}, +\code{\link{input_checkbox}()}, +\code{\link{input_checkbox_group}()}, +\code{\link{input_date}()}, +\code{\link{input_date_range}()}, +\code{\link{input_numeric}()}, +\code{\link{input_password}()}, +\code{\link{input_radio_buttons}()}, +\code{\link{input_select}()}, +\code{\link{input_selectize}()}, +\code{\link{input_slider}()}, +\code{\link{input_text}()} +} +\concept{Shiny input aliases} diff --git a/man/output_image.Rd b/man/output_image.Rd new file mode 100644 index 000000000..554bcec6d --- /dev/null +++ b/man/output_image.Rd @@ -0,0 +1,119 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/shiny-output_image.R +\name{output_image} +\alias{output_image} +\title{Create an plot or image output element} +\usage{ +output_image( + id, + width = "100\%", + height = "400px", + ..., + click = NULL, + dblclick = NULL, + hover = NULL, + brush = NULL, + inline = FALSE, + fill = FALSE +) +} +\arguments{ +\item{id}{An output id.} + +\item{width, height}{Image width/height. Must be a valid CSS unit (like +\code{"100\%"}, \code{"400px"}, \code{"auto"}) or a number, which will be +coerced to a string and have \code{"px"} appended. These two arguments are +ignored when \code{inline = TRUE}, in which case the width/height of a plot +must be specified in \code{renderPlot()}. Note that, for height, using +\code{"auto"} or \code{"100\%"} generally will not work as expected, +because of how height is computed with HTML/CSS.} + +\item{...}{Ignored, included for future expansion.} + +\item{click}{This can be \code{NULL} (the default), a string, or an object +created by the \code{\link[shiny:clickOpts]{clickOpts()}} function. If you use a value like +\code{"plot_click"} (or equivalently, \code{clickOpts(id="plot_click")}), +the plot will send coordinates to the server whenever it is clicked, and +the value will be accessible via \code{input$plot_click}. The value will be +a named list with \code{x} and \code{y} elements indicating the mouse +position.} + +\item{dblclick}{This is just like the \code{click} argument, but for +double-click events.} + +\item{hover}{Similar to the \code{click} argument, this can be \code{NULL} +(the default), a string, or an object created by the +\code{\link[shiny:hoverOpts]{hoverOpts()}} function. If you use a value like +\code{"plot_hover"} (or equivalently, \code{hoverOpts(id="plot_hover")}), +the plot will send coordinates to the server pauses on the plot, and the +value will be accessible via \code{input$plot_hover}. The value will be a +named list with \code{x} and \code{y} elements indicating the mouse +position. To control the hover time or hover delay type, you must use +\code{\link[shiny:hoverOpts]{hoverOpts()}}.} + +\item{brush}{Similar to the \code{click} argument, this can be \code{NULL} +(the default), a string, or an object created by the +\code{\link[shiny:brushOpts]{brushOpts()}} function. If you use a value like +\code{"plot_brush"} (or equivalently, \code{brushOpts(id="plot_brush")}), +the plot will allow the user to "brush" in the plotting area, and will send +information about the brushed area to the server, and the value will be +accessible via \code{input$plot_brush}. Brushing means that the user will +be able to draw a rectangle in the plotting area and drag it around. The +value will be a named list with \code{xmin}, \code{xmax}, \code{ymin}, and +\code{ymax} elements indicating the brush area. To control the brush +behavior, use \code{\link[shiny:brushOpts]{brushOpts()}}. Multiple +\code{imageOutput}/\code{plotOutput} calls may share the same \code{id} +value; brushing one image or plot will cause any other brushes with the +same \code{id} to disappear.} + +\item{inline}{use an inline (\code{span()}) or block container (\code{div()}) +for the output} + +\item{fill}{Whether or not the returned tag should be treated as a fill item, +meaning that its \code{height} is allowed to grow/shrink to fit a fill container +with an opinionated height (see \code{\link[htmltools:bindFillRole]{htmltools::bindFillRole()}}) with an +opinionated height. Examples of fill containers include \code{bslib::card()} and +\code{bslib::card_body_fill()}.} +} +\value{ +A plot or image output element that can be included in a panel. +} +\description{ +Render a \code{\link[shiny:renderPlot]{renderPlot()}} or \code{\link[shiny:renderImage]{renderImage()}} within an +application page. +} +\section{Interactive plots}{ + + + +Plots and images in Shiny support mouse-based interaction, via clicking, +double-clicking, hovering, and brushing. When these interaction events +occur, the mouse coordinates will be sent to the server as \verb{input$} +variables, as specified by \code{click}, \code{dblclick}, \code{hover}, or +\code{brush}. + +For \code{plotOutput}, the coordinates will be sent scaled to the data +space, if possible. (At the moment, plots generated by base graphics and +ggplot2 support this scaling, although plots generated by lattice and +others do not.) If scaling is not possible, the raw pixel coordinates will +be sent. For \code{imageOutput}, the coordinates will be sent in raw pixel +coordinates. + +With ggplot2 graphics, the code in \code{renderPlot} should return a ggplot +object; if instead the code prints the ggplot2 object with something like +\code{print(p)}, then the coordinates for interactive graphics will not be +properly scaled to the data space. + +} + +\seealso{ +\code{\link[=render_image]{render_image()}} to reactively update the \code{new_output()}. + +Other Shiny output aliases: +\code{\link{output_plot}()}, +\code{\link{output_table}()}, +\code{\link{output_text}()}, +\code{\link{output_text_verbatim}()}, +\code{\link{output_ui}()} +} +\concept{Shiny output aliases} diff --git a/man/output_plot.Rd b/man/output_plot.Rd new file mode 100644 index 000000000..91a8df3e7 --- /dev/null +++ b/man/output_plot.Rd @@ -0,0 +1,119 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/shiny-output_plot.R +\name{output_plot} +\alias{output_plot} +\title{Create an plot or image output element} +\usage{ +output_plot( + id, + width = "100\%", + height = "400px", + ..., + click = NULL, + dblclick = NULL, + hover = NULL, + brush = NULL, + inline = FALSE, + fill = !inline +) +} +\arguments{ +\item{id}{An output id.} + +\item{width, height}{Image width/height. Must be a valid CSS unit (like +\code{"100\%"}, \code{"400px"}, \code{"auto"}) or a number, which will be +coerced to a string and have \code{"px"} appended. These two arguments are +ignored when \code{inline = TRUE}, in which case the width/height of a plot +must be specified in \code{renderPlot()}. Note that, for height, using +\code{"auto"} or \code{"100\%"} generally will not work as expected, +because of how height is computed with HTML/CSS.} + +\item{...}{Ignored, included for future expansion.} + +\item{click}{This can be \code{NULL} (the default), a string, or an object +created by the \code{\link[shiny:clickOpts]{clickOpts()}} function. If you use a value like +\code{"plot_click"} (or equivalently, \code{clickOpts(id="plot_click")}), +the plot will send coordinates to the server whenever it is clicked, and +the value will be accessible via \code{input$plot_click}. The value will be +a named list with \code{x} and \code{y} elements indicating the mouse +position.} + +\item{dblclick}{This is just like the \code{click} argument, but for +double-click events.} + +\item{hover}{Similar to the \code{click} argument, this can be \code{NULL} +(the default), a string, or an object created by the +\code{\link[shiny:hoverOpts]{hoverOpts()}} function. If you use a value like +\code{"plot_hover"} (or equivalently, \code{hoverOpts(id="plot_hover")}), +the plot will send coordinates to the server pauses on the plot, and the +value will be accessible via \code{input$plot_hover}. The value will be a +named list with \code{x} and \code{y} elements indicating the mouse +position. To control the hover time or hover delay type, you must use +\code{\link[shiny:hoverOpts]{hoverOpts()}}.} + +\item{brush}{Similar to the \code{click} argument, this can be \code{NULL} +(the default), a string, or an object created by the +\code{\link[shiny:brushOpts]{brushOpts()}} function. If you use a value like +\code{"plot_brush"} (or equivalently, \code{brushOpts(id="plot_brush")}), +the plot will allow the user to "brush" in the plotting area, and will send +information about the brushed area to the server, and the value will be +accessible via \code{input$plot_brush}. Brushing means that the user will +be able to draw a rectangle in the plotting area and drag it around. The +value will be a named list with \code{xmin}, \code{xmax}, \code{ymin}, and +\code{ymax} elements indicating the brush area. To control the brush +behavior, use \code{\link[shiny:brushOpts]{brushOpts()}}. Multiple +\code{imageOutput}/\code{plotOutput} calls may share the same \code{id} +value; brushing one image or plot will cause any other brushes with the +same \code{id} to disappear.} + +\item{inline}{use an inline (\code{span()}) or block container (\code{div()}) +for the output} + +\item{fill}{Whether or not the returned tag should be treated as a fill item, +meaning that its \code{height} is allowed to grow/shrink to fit a fill container +with an opinionated height (see \code{\link[htmltools:bindFillRole]{htmltools::bindFillRole()}}) with an +opinionated height. Examples of fill containers include \code{bslib::card()} and +\code{bslib::card_body_fill()}.} +} +\value{ +A plot or image output element that can be included in a panel. +} +\description{ +Render a \code{\link[shiny:renderPlot]{renderPlot()}} or \code{\link[shiny:renderImage]{renderImage()}} within an +application page. +} +\section{Interactive plots}{ + + + +Plots and images in Shiny support mouse-based interaction, via clicking, +double-clicking, hovering, and brushing. When these interaction events +occur, the mouse coordinates will be sent to the server as \verb{input$} +variables, as specified by \code{click}, \code{dblclick}, \code{hover}, or +\code{brush}. + +For \code{plotOutput}, the coordinates will be sent scaled to the data +space, if possible. (At the moment, plots generated by base graphics and +ggplot2 support this scaling, although plots generated by lattice and +others do not.) If scaling is not possible, the raw pixel coordinates will +be sent. For \code{imageOutput}, the coordinates will be sent in raw pixel +coordinates. + +With ggplot2 graphics, the code in \code{renderPlot} should return a ggplot +object; if instead the code prints the ggplot2 object with something like +\code{print(p)}, then the coordinates for interactive graphics will not be +properly scaled to the data space. + +} + +\seealso{ +\code{\link[=render_plot]{render_plot()}} to reactively update the \code{new_output()}. + +Other Shiny output aliases: +\code{\link{output_image}()}, +\code{\link{output_table}()}, +\code{\link{output_text}()}, +\code{\link{output_text_verbatim}()}, +\code{\link{output_ui}()} +} +\concept{Shiny output aliases} diff --git a/man/output_table.Rd b/man/output_table.Rd new file mode 100644 index 000000000..92b030b96 --- /dev/null +++ b/man/output_table.Rd @@ -0,0 +1,30 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/shiny-output_table.R +\name{output_table} +\alias{output_table} +\title{Table Output} +\usage{ +output_table(id) +} +\arguments{ +\item{id}{An output id.} +} +\description{ +The \code{tableOuptut()}/\code{renderTable()} pair creates a reactive table that is +suitable for display small matrices and data frames. The columns are +formatted with \code{\link[xtable:xtable]{xtable::xtable()}}. + +See \code{\link[shiny:renderDataTable]{renderDataTable()}} for data frames that are too big to fit on a single +page. +} +\seealso{ +\code{\link[=render_table]{render_table()}} to reactively update the \code{new_output()}. + +Other Shiny output aliases: +\code{\link{output_image}()}, +\code{\link{output_plot}()}, +\code{\link{output_text}()}, +\code{\link{output_text_verbatim}()}, +\code{\link{output_ui}()} +} +\concept{Shiny output aliases} diff --git a/man/output_text.Rd b/man/output_text.Rd new file mode 100644 index 000000000..2cccfc545 --- /dev/null +++ b/man/output_text.Rd @@ -0,0 +1,39 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/shiny-output_text.R +\name{output_text} +\alias{output_text} +\title{Create a text output element} +\usage{ +output_text(id, inline = FALSE, container = if (inline) span else div) +} +\arguments{ +\item{id}{An output id.} + +\item{inline}{use an inline (\code{span()}) or block container (\code{div()}) +for the output} + +\item{container}{a function to generate an HTML element to contain the text} +} +\value{ +An output element for use in UI. +} +\description{ +Render a reactive output variable as text within an application page. +\code{textOutput()} is usually paired with \code{\link[shiny:renderText]{renderText()}} and puts regular text +in \verb{
} or \verb{}; \code{verbatimTextOutput()} is usually paired with +\code{\link[shiny:renderPrint]{renderPrint()}} and provides fixed-width text in a \verb{
}.
+}
+\details{
+In both functions, text is HTML-escaped prior to rendering.
+}
+\seealso{
+\code{\link[=render_text]{render_text()}} to reactively update the \code{new_output()}.
+
+Other Shiny output aliases: 
+\code{\link{output_image}()},
+\code{\link{output_plot}()},
+\code{\link{output_table}()},
+\code{\link{output_text_verbatim}()},
+\code{\link{output_ui}()}
+}
+\concept{Shiny output aliases}
diff --git a/man/output_text_verbatim.Rd b/man/output_text_verbatim.Rd
new file mode 100644
index 000000000..9d46f0918
--- /dev/null
+++ b/man/output_text_verbatim.Rd
@@ -0,0 +1,38 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/shiny-output_text_verbatim.R
+\name{output_text_verbatim}
+\alias{output_text_verbatim}
+\title{Create a text output element}
+\usage{
+output_text_verbatim(id, placeholder = FALSE)
+}
+\arguments{
+\item{id}{An output id.}
+
+\item{placeholder}{if the output is empty or \code{NULL}, should an empty
+rectangle be displayed to serve as a placeholder? (does not affect
+behavior when the output is nonempty)}
+}
+\value{
+An output element for use in UI.
+}
+\description{
+Render a reactive output variable as text within an application page.
+\code{textOutput()} is usually paired with \code{\link[shiny:renderText]{renderText()}} and puts regular text
+in \verb{
} or \verb{}; \code{verbatimTextOutput()} is usually paired with +\code{\link[shiny:renderPrint]{renderPrint()}} and provides fixed-width text in a \verb{
}.
+}
+\details{
+In both functions, text is HTML-escaped prior to rendering.
+}
+\seealso{
+\code{\link[=render_text_verbatim]{render_text_verbatim()}} to reactively update the \code{new_output()}.
+
+Other Shiny output aliases: 
+\code{\link{output_image}()},
+\code{\link{output_plot}()},
+\code{\link{output_table}()},
+\code{\link{output_text}()},
+\code{\link{output_ui}()}
+}
+\concept{Shiny output aliases}
diff --git a/man/output_ui.Rd b/man/output_ui.Rd
new file mode 100644
index 000000000..c6d7f71e0
--- /dev/null
+++ b/man/output_ui.Rd
@@ -0,0 +1,55 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/shiny-output_ui.R
+\name{output_ui}
+\alias{output_ui}
+\title{Create an HTML output element}
+\usage{
+output_ui(
+  id,
+  ...,
+  inline = FALSE,
+  container = if (inline) span else div,
+  fill = FALSE
+)
+}
+\arguments{
+\item{id}{An output id.}
+
+\item{...}{Other arguments to pass to the container tag function. This is
+useful for providing additional classes for the tag.}
+
+\item{inline}{use an inline (\code{span()}) or block container (\code{div()})
+for the output}
+
+\item{container}{a function to generate an HTML element to contain the text}
+
+\item{fill}{If \code{TRUE}, the result of \code{container} is treated as \emph{both} a fill
+item and container (see \code{\link[htmltools:bindFillRole]{htmltools::bindFillRole()}}), which means both the
+\code{container} as well as its immediate children (i.e., the result of
+\code{renderUI()}) are allowed to grow/shrink to fit a fill container with an
+opinionated height. Set \code{fill = "item"} or \code{fill = "container"} to treat
+\code{container} as just a fill item or a fill container.}
+}
+\value{
+An HTML output element that can be included in a panel
+}
+\description{
+Render a reactive output variable as HTML within an application page. The
+text will be included within an HTML \code{div} tag, and is presumed to contain
+HTML content which should not be escaped.
+}
+\details{
+\code{uiOutput} is intended to be used with \code{renderUI} on the server side. It is
+currently just an alias for \code{htmlOutput}.
+}
+\seealso{
+\code{\link[=render_ui]{render_ui()}} to reactively update the \code{new_output()}.
+
+Other Shiny output aliases: 
+\code{\link{output_image}()},
+\code{\link{output_plot}()},
+\code{\link{output_table}()},
+\code{\link{output_text}()},
+\code{\link{output_text_verbatim}()}
+}
+\concept{Shiny output aliases}
diff --git a/man/render_image.Rd b/man/render_image.Rd
new file mode 100644
index 000000000..2493ed30b
--- /dev/null
+++ b/man/render_image.Rd
@@ -0,0 +1,74 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/shiny-output_image.R
+\name{render_image}
+\alias{render_image}
+\title{Image file output}
+\usage{
+render_image(
+  expr,
+  env = parent.frame(),
+  quoted = FALSE,
+  deleteFile,
+  outputArgs = list()
+)
+}
+\arguments{
+\item{expr}{An expression that returns a list.}
+
+\item{env}{The parent environment for the reactive expression. By default,
+this is the calling environment, the same as when defining an ordinary
+non-reactive expression. If \code{expr} is a quosure and \code{quoted} is \code{TRUE},
+then \code{env} is ignored.}
+
+\item{quoted}{If it is \code{TRUE}, then the \code{\link[=quote]{quote()}}ed value of \code{expr}
+will be used when \code{expr} is evaluated. If \code{expr} is a quosure and you
+would like to use its expression as a value for \code{expr}, then you must set
+\code{quoted} to \code{TRUE}.}
+
+\item{deleteFile}{Should the file in \code{func()$src} be deleted after
+it is sent to the client browser? Generally speaking, if the image is a
+temp file generated within \code{func}, then this should be \code{TRUE};
+if the image is not a temp file, this should be \code{FALSE}. (For backward
+compatibility reasons, if this argument is missing, a warning will be
+emitted, and if the file is in the temp directory it will be deleted. In
+the future, this warning will become an error.)}
+
+\item{outputArgs}{A list of arguments to be passed through to the implicit
+call to \code{\link[shiny:imageOutput]{imageOutput()}} when \code{renderImage} is used in an
+interactive R Markdown document.}
+}
+\description{
+Renders a reactive image that is suitable for assigning to an \code{output}
+slot.
+}
+\details{
+The expression \code{expr} must return a list containing the attributes for
+the \code{img} object on the client web page. For the image to display,
+properly, the list must have at least one entry, \code{src}, which is the
+path to the image file. It may also useful to have a \code{contentType}
+entry specifying the MIME type of the image. If one is not provided,
+\code{renderImage} will try to autodetect the type, based on the file
+extension.
+
+Other elements such as \code{width}, \code{height}, \code{class}, and
+\code{alt}, can also be added to the list, and they will be used as
+attributes in the \code{img} object.
+
+The corresponding HTML output tag should be \code{div} or \code{img} and have
+the CSS class name \code{shiny-image-output}.
+}
+\section{Aliased from Shiny}{
+ This function is an alias for \code{shiny::renderImage()} and is included to maintain more consistent naming conventions in Shiny apps that use \pkg{bslib}. The documentation on this page may still refer to the original function names. You can replace \code{shiny::renderImage()} with \code{render_image()}.
+}
+
+\seealso{
+\code{\link[=output_image]{output_image()}} to create an output in the UI.
+
+Other Shiny render aliases: 
+\code{\link{render_plot}()},
+\code{\link{render_table}()},
+\code{\link{render_text}()},
+\code{\link{render_text_verbatim}()},
+\code{\link{render_ui}()}
+}
+\concept{Shiny render aliases}
diff --git a/man/render_plot.Rd b/man/render_plot.Rd
new file mode 100644
index 000000000..ecba78cfc
--- /dev/null
+++ b/man/render_plot.Rd
@@ -0,0 +1,109 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/shiny-output_plot.R
+\name{render_plot}
+\alias{render_plot}
+\title{Plot Output}
+\usage{
+render_plot(
+  expr,
+  width = "auto",
+  height = "auto",
+  res = 72,
+  ...,
+  alt = NA,
+  env = parent.frame(),
+  quoted = FALSE,
+  execOnResize = FALSE,
+  outputArgs = list()
+)
+}
+\arguments{
+\item{expr}{An expression that generates a plot.}
+
+\item{width, height}{Height and width can be specified in three ways:
+\itemize{
+\item \code{"auto"}, the default, uses the size specified by \code{\link[shiny:plotOutput]{plotOutput()}}
+(i.e. the \code{offsetWidth}/`offsetHeight`` of the HTML element bound to
+this plot.)
+\item An integer, defining the width/height in pixels.
+\item A function that returns the width/height in pixels (or \code{"auto"}).
+The function is executed in a reactive context so that you can refer to
+reactive values and expression to make the width/height reactive.
+}
+
+When rendering an inline plot, you must provide numeric values (in pixels)
+to both \code{width} and \code{height}.}
+
+\item{res}{Resolution of resulting plot, in pixels per inch. This value is
+passed to \code{\link[shiny:plotPNG]{plotPNG()}}. Note that this affects the resolution of PNG
+rendering in R; it won't change the actual ppi of the browser.}
+
+\item{...}{Arguments to be passed through to \code{\link[shiny:plotPNG]{plotPNG()}}.
+These can be used to set the width, height, background color, etc.}
+
+\item{alt}{Alternate text for the HTML \verb{} tag if it cannot be displayed
+or viewed (i.e., the user uses a screen reader). In addition to a character
+string, the value may be a reactive expression (or a function referencing
+reactive values) that returns a character string. If the value is \code{NA} (the
+default), then \code{ggplot2::get_alt_text()} is used to extract alt text from
+ggplot objects; for other plots, \code{NA} results in alt text of "Plot object".
+\code{NULL} or \code{""} is not recommended because those should be limited to
+decorative images.}
+
+\item{env}{The parent environment for the reactive expression. By default,
+this is the calling environment, the same as when defining an ordinary
+non-reactive expression. If \code{expr} is a quosure and \code{quoted} is \code{TRUE},
+then \code{env} is ignored.}
+
+\item{quoted}{If it is \code{TRUE}, then the \code{\link[=quote]{quote()}}ed value of \code{expr}
+will be used when \code{expr} is evaluated. If \code{expr} is a quosure and you
+would like to use its expression as a value for \code{expr}, then you must set
+\code{quoted} to \code{TRUE}.}
+
+\item{execOnResize}{If \code{FALSE} (the default), then when a plot is
+resized, Shiny will \emph{replay} the plot drawing commands with
+\code{\link[grDevices:recordplot]{grDevices::replayPlot()}} instead of re-executing \code{expr}.
+This can result in faster plot redrawing, but there may be rare cases where
+it is undesirable. If you encounter problems when resizing a plot, you can
+have Shiny re-execute the code on resize by setting this to \code{TRUE}.}
+
+\item{outputArgs}{A list of arguments to be passed through to the implicit
+call to \code{\link[shiny:plotOutput]{plotOutput()}} when \code{renderPlot} is used in an
+interactive R Markdown document.}
+}
+\description{
+Renders a reactive plot that is suitable for assigning to an \code{output}
+slot.
+}
+\details{
+The corresponding HTML output tag should be \code{div} or \code{img} and have
+the CSS class name \code{shiny-plot-output}.
+}
+\section{Aliased from Shiny}{
+ This function is an alias for \code{shiny::renderPlot()} and is included to maintain more consistent naming conventions in Shiny apps that use \pkg{bslib}. The documentation on this page may still refer to the original function names. You can replace \code{shiny::renderPlot()} with \code{render_plot()}.
+}
+
+\section{Interactive plots}{
+
+
+
+With ggplot2 graphics, the code in \code{renderPlot} should return a ggplot
+object; if instead the code prints the ggplot2 object with something like
+\code{print(p)}, then the coordinates for interactive graphics will not be
+properly scaled to the data space.
+
+See \code{\link[shiny:plotOutput]{plotOutput()}} for more information about interactive plots.
+
+}
+
+\seealso{
+\code{\link[=output_plot]{output_plot()}} to create an output in the UI.
+
+Other Shiny render aliases: 
+\code{\link{render_image}()},
+\code{\link{render_table}()},
+\code{\link{render_text}()},
+\code{\link{render_text_verbatim}()},
+\code{\link{render_ui}()}
+}
+\concept{Shiny render aliases}
diff --git a/man/render_table.Rd b/man/render_table.Rd
new file mode 100644
index 000000000..ccc89909d
--- /dev/null
+++ b/man/render_table.Rd
@@ -0,0 +1,105 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/shiny-output_table.R
+\name{render_table}
+\alias{render_table}
+\title{Table Output}
+\usage{
+render_table(
+  expr,
+  ...,
+  striped = FALSE,
+  hover = FALSE,
+  bordered = FALSE,
+  spacing = c("s", "xs", "m", "l"),
+  width = "auto",
+  align = NULL,
+  rownames = FALSE,
+  colnames = TRUE,
+  digits = NULL,
+  na = "NA",
+  env = parent.frame(),
+  quoted = FALSE,
+  outputArgs = list()
+)
+}
+\arguments{
+\item{expr}{An expression that returns an R object that can be used with
+\code{\link[xtable:xtable]{xtable::xtable()}}.}
+
+\item{...}{Arguments to be passed through to \code{\link[xtable:xtable]{xtable::xtable()}}
+and \code{\link[xtable:print.xtable]{xtable::print.xtable()}}.}
+
+\item{striped, hover, bordered}{Logicals: if \code{TRUE}, apply the
+corresponding Bootstrap table format to the output table.}
+
+\item{spacing}{The spacing between the rows of the table (\code{xs}
+stands for "extra small", \code{s} for "small", \code{m} for "medium"
+and \code{l} for "large").}
+
+\item{width}{Table width. Must be a valid CSS unit (like "100\%", "400px",
+"auto") or a number, which will be coerced to a string and
+have "px" appended.}
+
+\item{align}{A string that specifies the column alignment. If equal to
+\code{'l'}, \code{'c'} or \code{'r'}, then all columns will be,
+respectively, left-, center- or right-aligned. Otherwise, \code{align}
+must have the same number of characters as the resulting table (if
+\code{rownames = TRUE}, this will be equal to \code{ncol()+1}), with
+the \emph{i}-th character specifying the alignment for the
+\emph{i}-th column (besides \code{'l'}, \code{'c'} and
+\code{'r'}, \code{'?'} is also permitted - \code{'?'} is a placeholder
+for that particular column, indicating that it should keep its default
+alignment). If \code{NULL}, then all numeric/integer columns (including
+the row names, if they are numbers) will be right-aligned and
+everything else will be left-aligned (\code{align = '?'} produces the
+same result).}
+
+\item{rownames, colnames}{Logicals: include rownames? include colnames
+(column headers)?}
+
+\item{digits}{An integer specifying the number of decimal places for
+the numeric columns (this will not apply to columns with an integer
+class). If \code{digits} is set to a negative value, then the numeric
+columns will be displayed in scientific format with a precision of
+\code{abs(digits)} digits.}
+
+\item{na}{The string to use in the table cells whose values are missing
+(i.e. they either evaluate to \code{NA} or \code{NaN}).}
+
+\item{env}{The parent environment for the reactive expression. By default,
+this is the calling environment, the same as when defining an ordinary
+non-reactive expression. If \code{expr} is a quosure and \code{quoted} is \code{TRUE},
+then \code{env} is ignored.}
+
+\item{quoted}{If it is \code{TRUE}, then the \code{\link[=quote]{quote()}}ed value of \code{expr}
+will be used when \code{expr} is evaluated. If \code{expr} is a quosure and you
+would like to use its expression as a value for \code{expr}, then you must set
+\code{quoted} to \code{TRUE}.}
+
+\item{outputArgs}{A list of arguments to be passed through to the
+implicit call to \code{\link[shiny:tableOutput]{tableOutput()}} when \code{renderTable} is
+used in an interactive R Markdown document.}
+}
+\description{
+The \code{tableOuptut()}/\code{renderTable()} pair creates a reactive table that is
+suitable for display small matrices and data frames. The columns are
+formatted with \code{\link[xtable:xtable]{xtable::xtable()}}.
+
+See \code{\link[shiny:renderDataTable]{renderDataTable()}} for data frames that are too big to fit on a single
+page.
+}
+\section{Aliased from Shiny}{
+ This function is an alias for \code{shiny::renderTable()} and is included to maintain more consistent naming conventions in Shiny apps that use \pkg{bslib}. The documentation on this page may still refer to the original function names. You can replace \code{shiny::renderTable()} with \code{render_table()}.
+}
+
+\seealso{
+\code{\link[=output_table]{output_table()}} to create an output in the UI.
+
+Other Shiny render aliases: 
+\code{\link{render_image}()},
+\code{\link{render_plot}()},
+\code{\link{render_text}()},
+\code{\link{render_text_verbatim}()},
+\code{\link{render_ui}()}
+}
+\concept{Shiny render aliases}
diff --git a/man/render_text.Rd b/man/render_text.Rd
new file mode 100644
index 000000000..ccc8cb93b
--- /dev/null
+++ b/man/render_text.Rd
@@ -0,0 +1,68 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/shiny-output_text.R
+\name{render_text}
+\alias{render_text}
+\title{Text Output}
+\usage{
+render_text(
+  expr,
+  env = parent.frame(),
+  quoted = FALSE,
+  outputArgs = list(),
+  sep = " "
+)
+}
+\arguments{
+\item{expr}{An expression to evaluate.}
+
+\item{env}{The parent environment for the reactive expression. By default,
+this is the calling environment, the same as when defining an ordinary
+non-reactive expression. If \code{expr} is a quosure and \code{quoted} is \code{TRUE},
+then \code{env} is ignored.}
+
+\item{quoted}{If it is \code{TRUE}, then the \code{\link[=quote]{quote()}}ed value of \code{expr}
+will be used when \code{expr} is evaluated. If \code{expr} is a quosure and you
+would like to use its expression as a value for \code{expr}, then you must set
+\code{quoted} to \code{TRUE}.}
+
+\item{outputArgs}{A list of arguments to be passed through to the implicit
+call to \code{\link[shiny:verbatimTextOutput]{verbatimTextOutput()}} or \code{\link[shiny:textOutput]{textOutput()}} when the functions are
+used in an interactive RMarkdown document.}
+
+\item{sep}{A separator passed to \code{cat} to be appended after each
+element.}
+}
+\value{
+For \code{renderPrint()}, note the given expression returns \code{NULL} then \code{NULL}
+will actually be visible in the output. To display nothing, make your
+function return \code{\link[=invisible]{invisible()}}.
+}
+\description{
+\code{renderPrint()} prints the result of \code{expr}, while \code{renderText()} pastes it
+together into a single string. \code{renderPrint()} is equivalent to \code{\link[=print]{print()}};
+\code{renderText()} is equivalent to \code{\link[=cat]{cat()}}. Both functions capture all other
+printed output generated while evaluating \code{expr}.
+
+\code{renderPrint()} is usually paired with \code{\link[shiny:verbatimTextOutput]{verbatimTextOutput()}};
+\code{renderText()} is usually paired with \code{\link[shiny:textOutput]{textOutput()}}.
+}
+\details{
+The corresponding HTML output tag can be anything (though \code{pre} is
+recommended if you need a monospace font and whitespace preserved) and should
+have the CSS class name \code{shiny-text-output}.
+}
+\section{Aliased from Shiny}{
+ This function is an alias for \code{shiny::renderText()} and is included to maintain more consistent naming conventions in Shiny apps that use \pkg{bslib}. The documentation on this page may still refer to the original function names. You can replace \code{shiny::renderText()} with \code{render_text()}.
+}
+
+\seealso{
+\code{\link[=output_text]{output_text()}} to create an output in the UI.
+
+Other Shiny render aliases: 
+\code{\link{render_image}()},
+\code{\link{render_plot}()},
+\code{\link{render_table}()},
+\code{\link{render_text_verbatim}()},
+\code{\link{render_ui}()}
+}
+\concept{Shiny render aliases}
diff --git a/man/render_text_verbatim.Rd b/man/render_text_verbatim.Rd
new file mode 100644
index 000000000..f24c311f6
--- /dev/null
+++ b/man/render_text_verbatim.Rd
@@ -0,0 +1,67 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/shiny-output_text_verbatim.R
+\name{render_text_verbatim}
+\alias{render_text_verbatim}
+\title{Text Output}
+\usage{
+render_text_verbatim(
+  expr,
+  env = parent.frame(),
+  quoted = FALSE,
+  width = getOption("width"),
+  outputArgs = list()
+)
+}
+\arguments{
+\item{expr}{An expression to evaluate.}
+
+\item{env}{The parent environment for the reactive expression. By default,
+this is the calling environment, the same as when defining an ordinary
+non-reactive expression. If \code{expr} is a quosure and \code{quoted} is \code{TRUE},
+then \code{env} is ignored.}
+
+\item{quoted}{If it is \code{TRUE}, then the \code{\link[=quote]{quote()}}ed value of \code{expr}
+will be used when \code{expr} is evaluated. If \code{expr} is a quosure and you
+would like to use its expression as a value for \code{expr}, then you must set
+\code{quoted} to \code{TRUE}.}
+
+\item{width}{Width of printed output.}
+
+\item{outputArgs}{A list of arguments to be passed through to the implicit
+call to \code{\link[shiny:verbatimTextOutput]{verbatimTextOutput()}} or \code{\link[shiny:textOutput]{textOutput()}} when the functions are
+used in an interactive RMarkdown document.}
+}
+\value{
+For \code{renderPrint()}, note the given expression returns \code{NULL} then \code{NULL}
+will actually be visible in the output. To display nothing, make your
+function return \code{\link[=invisible]{invisible()}}.
+}
+\description{
+\code{renderPrint()} prints the result of \code{expr}, while \code{renderText()} pastes it
+together into a single string. \code{renderPrint()} is equivalent to \code{\link[=print]{print()}};
+\code{renderText()} is equivalent to \code{\link[=cat]{cat()}}. Both functions capture all other
+printed output generated while evaluating \code{expr}.
+
+\code{renderPrint()} is usually paired with \code{\link[shiny:verbatimTextOutput]{verbatimTextOutput()}};
+\code{renderText()} is usually paired with \code{\link[shiny:textOutput]{textOutput()}}.
+}
+\details{
+The corresponding HTML output tag can be anything (though \code{pre} is
+recommended if you need a monospace font and whitespace preserved) and should
+have the CSS class name \code{shiny-text-output}.
+}
+\section{Aliased from Shiny}{
+ This function is an alias for \code{shiny::renderPrint()} and is included to maintain more consistent naming conventions in Shiny apps that use \pkg{bslib}. The documentation on this page may still refer to the original function names. You can replace \code{shiny::renderPrint()} with \code{render_text_verbatim()}.
+}
+
+\seealso{
+\code{\link[=output_text_verbatim]{output_text_verbatim()}} to create an output in the UI.
+
+Other Shiny render aliases: 
+\code{\link{render_image}()},
+\code{\link{render_plot}()},
+\code{\link{render_table}()},
+\code{\link{render_text}()},
+\code{\link{render_ui}()}
+}
+\concept{Shiny render aliases}
diff --git a/man/render_ui.Rd b/man/render_ui.Rd
new file mode 100644
index 000000000..f40204092
--- /dev/null
+++ b/man/render_ui.Rd
@@ -0,0 +1,48 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/shiny-output_ui.R
+\name{render_ui}
+\alias{render_ui}
+\title{UI Output}
+\usage{
+render_ui(expr, env = parent.frame(), quoted = FALSE, outputArgs = list())
+}
+\arguments{
+\item{expr}{An expression that returns a Shiny tag object, \code{\link[shiny:HTML]{HTML()}},
+or a list of such objects.}
+
+\item{env}{The parent environment for the reactive expression. By default,
+this is the calling environment, the same as when defining an ordinary
+non-reactive expression. If \code{expr} is a quosure and \code{quoted} is \code{TRUE},
+then \code{env} is ignored.}
+
+\item{quoted}{If it is \code{TRUE}, then the \code{\link[=quote]{quote()}}ed value of \code{expr}
+will be used when \code{expr} is evaluated. If \code{expr} is a quosure and you
+would like to use its expression as a value for \code{expr}, then you must set
+\code{quoted} to \code{TRUE}.}
+
+\item{outputArgs}{A list of arguments to be passed through to the implicit
+call to \code{\link[shiny:uiOutput]{uiOutput()}} when \code{renderUI} is used in an
+interactive R Markdown document.}
+}
+\description{
+Renders reactive HTML using the Shiny UI library.
+}
+\details{
+The corresponding HTML output tag should be \code{div} and have the CSS class
+name \code{shiny-html-output} (or use \code{\link[shiny:uiOutput]{uiOutput()}}).
+}
+\section{Aliased from Shiny}{
+ This function is an alias for \code{shiny::renderUI()} and is included to maintain more consistent naming conventions in Shiny apps that use \pkg{bslib}. The documentation on this page may still refer to the original function names. You can replace \code{shiny::renderUI()} with \code{render_ui()}.
+}
+
+\seealso{
+\code{\link[=output_ui]{output_ui()}} to create an output in the UI.
+
+Other Shiny render aliases: 
+\code{\link{render_image}()},
+\code{\link{render_plot}()},
+\code{\link{render_table}()},
+\code{\link{render_text}()},
+\code{\link{render_text_verbatim}()}
+}
+\concept{Shiny render aliases}
diff --git a/man/update_action_button.Rd b/man/update_action_button.Rd
new file mode 100644
index 000000000..ae9a41476
--- /dev/null
+++ b/man/update_action_button.Rd
@@ -0,0 +1,72 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/shiny-input_action_button.R
+\name{update_action_button}
+\alias{update_action_button}
+\title{Change the label or icon of an action button on the client}
+\usage{
+update_action_button(
+  id,
+  ...,
+  label = NULL,
+  icon = NULL,
+  disabled = NULL,
+  session = get_current_session()
+)
+}
+\arguments{
+\item{id}{An input id.}
+
+\item{...}{Ignored, included for future expansion.}
+
+\item{label}{The label to set for the input object.}
+
+\item{icon}{An optional \code{\link[shiny:icon]{icon()}} to appear on the button.}
+
+\item{disabled}{If \code{TRUE}, the button will not be clickable; if \code{FALSE}, it
+will be.}
+
+\item{session}{The \code{session} object passed to function given to
+\code{shinyServer}. Default is \code{getDefaultReactiveDomain()}.}
+}
+\description{
+Change the label or icon of an action button on the client
+}
+\details{
+The input updater functions send a message to the client, telling it to
+change the settings of an input object. The messages are collected and sent
+after all the observers (including outputs) have finished running.
+
+The syntax of these functions is similar to the functions that created the
+inputs in the first place. For example, \code{\link[shiny]{numericInput}()} and
+\code{updateNumericInput()} take a similar set of arguments.
+
+Any arguments with NULL values will be ignored; they will not result in any
+changes to the input object on the client.
+
+For \code{\link[shiny]{radioButtons}()}, \code{\link[shiny]{checkboxGroupInput}()} and
+\code{\link[shiny]{selectInput}()}, the set of choices can be cleared by using
+\code{choices=character(0)}. Similarly, for these inputs, the selected item
+can be cleared by using \code{selected=character(0)}.
+}
+\section{Aliased from Shiny}{
+ This function is an alias for \code{shiny::updateActionButton()} and is included to maintain more consistent naming conventions in Shiny apps that use \pkg{bslib}. The documentation on this page may still refer to the original function names. You can replace \code{shiny::updateActionButton()} with \code{update_action_button()}.
+}
+
+\seealso{
+\code{\link[=input_action_button]{input_action_button()}} to create an action button.
+
+Other Shiny update aliases: 
+\code{\link{update_action_link}()},
+\code{\link{update_checkbox}()},
+\code{\link{update_checkbox_group}()},
+\code{\link{update_date}()},
+\code{\link{update_date_range}()},
+\code{\link{update_numeric}()},
+\code{\link{update_radio_buttons}()},
+\code{\link{update_select}()},
+\code{\link{update_selectize}()},
+\code{\link{update_slider}()},
+\code{\link{update_text}()},
+\code{\link{update_text_area}()}
+}
+\concept{Shiny update aliases}
diff --git a/man/update_action_link.Rd b/man/update_action_link.Rd
new file mode 100644
index 000000000..79c7f55ae
--- /dev/null
+++ b/man/update_action_link.Rd
@@ -0,0 +1,68 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/shiny-input_action_link.R
+\name{update_action_link}
+\alias{update_action_link}
+\title{Change the label or icon of an action button on the client}
+\usage{
+update_action_link(
+  id,
+  ...,
+  label = NULL,
+  icon = NULL,
+  session = get_current_session
+)
+}
+\arguments{
+\item{id}{An input id.}
+
+\item{...}{Ignored, included for future expansion.}
+
+\item{label}{The label to set for the input object.}
+
+\item{icon}{An optional \code{\link[shiny:icon]{icon()}} to appear on the button.}
+
+\item{session}{The \code{session} object passed to function given to
+\code{shinyServer}. Default is \code{getDefaultReactiveDomain()}.}
+}
+\description{
+Change the label or icon of an action button on the client
+}
+\details{
+The input updater functions send a message to the client, telling it to
+change the settings of an input object. The messages are collected and sent
+after all the observers (including outputs) have finished running.
+
+The syntax of these functions is similar to the functions that created the
+inputs in the first place. For example, \code{\link[shiny]{numericInput}()} and
+\code{updateNumericInput()} take a similar set of arguments.
+
+Any arguments with NULL values will be ignored; they will not result in any
+changes to the input object on the client.
+
+For \code{\link[shiny]{radioButtons}()}, \code{\link[shiny]{checkboxGroupInput}()} and
+\code{\link[shiny]{selectInput}()}, the set of choices can be cleared by using
+\code{choices=character(0)}. Similarly, for these inputs, the selected item
+can be cleared by using \code{selected=character(0)}.
+}
+\section{Aliased from Shiny}{
+ This function is an alias for \code{shiny::updateActionLink()} and is included to maintain more consistent naming conventions in Shiny apps that use \pkg{bslib}. The documentation on this page may still refer to the original function names. You can replace \code{shiny::updateActionLink()} with \code{update_action_link()}.
+}
+
+\seealso{
+\code{\link[=input_action_link]{input_action_link()}} to create an action link.
+
+Other Shiny update aliases: 
+\code{\link{update_action_button}()},
+\code{\link{update_checkbox}()},
+\code{\link{update_checkbox_group}()},
+\code{\link{update_date}()},
+\code{\link{update_date_range}()},
+\code{\link{update_numeric}()},
+\code{\link{update_radio_buttons}()},
+\code{\link{update_select}()},
+\code{\link{update_selectize}()},
+\code{\link{update_slider}()},
+\code{\link{update_text}()},
+\code{\link{update_text_area}()}
+}
+\concept{Shiny update aliases}
diff --git a/man/update_checkbox.Rd b/man/update_checkbox.Rd
new file mode 100644
index 000000000..8a9c97915
--- /dev/null
+++ b/man/update_checkbox.Rd
@@ -0,0 +1,68 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/shiny-input_checkbox.R
+\name{update_checkbox}
+\alias{update_checkbox}
+\title{Change the value of a checkbox input on the client}
+\usage{
+update_checkbox(
+  id,
+  ...,
+  label = NULL,
+  value = NULL,
+  session = get_current_session()
+)
+}
+\arguments{
+\item{id}{An input id.}
+
+\item{...}{Ignored, included for future expansion.}
+
+\item{label}{The label to set for the input object.}
+
+\item{value}{Initial value (\code{TRUE} or \code{FALSE}).}
+
+\item{session}{The \code{session} object passed to function given to
+\code{shinyServer}. Default is \code{getDefaultReactiveDomain()}.}
+}
+\description{
+Change the value of a checkbox input on the client
+}
+\details{
+The input updater functions send a message to the client, telling it to
+change the settings of an input object. The messages are collected and sent
+after all the observers (including outputs) have finished running.
+
+The syntax of these functions is similar to the functions that created the
+inputs in the first place. For example, \code{\link[shiny]{numericInput}()} and
+\code{updateNumericInput()} take a similar set of arguments.
+
+Any arguments with NULL values will be ignored; they will not result in any
+changes to the input object on the client.
+
+For \code{\link[shiny]{radioButtons}()}, \code{\link[shiny]{checkboxGroupInput}()} and
+\code{\link[shiny]{selectInput}()}, the set of choices can be cleared by using
+\code{choices=character(0)}. Similarly, for these inputs, the selected item
+can be cleared by using \code{selected=character(0)}.
+}
+\section{Aliased from Shiny}{
+ This function is an alias for \code{shiny::updateCheckboxInput()} and is included to maintain more consistent naming conventions in Shiny apps that use \pkg{bslib}. The documentation on this page may still refer to the original function names. You can replace \code{shiny::updateCheckboxInput()} with \code{update_checkbox()}.
+}
+
+\seealso{
+\code{\link[=input_checkbox]{input_checkbox()}} to create a checkbox.
+
+Other Shiny update aliases: 
+\code{\link{update_action_button}()},
+\code{\link{update_action_link}()},
+\code{\link{update_checkbox_group}()},
+\code{\link{update_date}()},
+\code{\link{update_date_range}()},
+\code{\link{update_numeric}()},
+\code{\link{update_radio_buttons}()},
+\code{\link{update_select}()},
+\code{\link{update_selectize}()},
+\code{\link{update_slider}()},
+\code{\link{update_text}()},
+\code{\link{update_text_area}()}
+}
+\concept{Shiny update aliases}
diff --git a/man/update_checkbox_group.Rd b/man/update_checkbox_group.Rd
new file mode 100644
index 000000000..a2ab0030a
--- /dev/null
+++ b/man/update_checkbox_group.Rd
@@ -0,0 +1,90 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/shiny-input_checkbox_group.R
+\name{update_checkbox_group}
+\alias{update_checkbox_group}
+\title{Change the value of a checkbox group input on the client}
+\usage{
+update_checkbox_group(
+  id,
+  ...,
+  label = NULL,
+  choices = NULL,
+  selected = NULL,
+  inline = FALSE,
+  choiceNames = NULL,
+  choiceValues = NULL,
+  session = get_current_session()
+)
+}
+\arguments{
+\item{id}{An input id.}
+
+\item{...}{Ignored, included for future expansion.}
+
+\item{label}{The label to set for the input object.}
+
+\item{choices}{List of values to show checkboxes for. If elements of the list
+are named then that name rather than the value is displayed to the user. If
+this argument is provided, then \code{choiceNames} and \code{choiceValues}
+must not be provided, and vice-versa. The values should be strings; other
+types (such as logicals and numbers) will be coerced to strings.}
+
+\item{selected}{The values that should be initially selected, if any.}
+
+\item{inline}{If \code{TRUE}, render the choices inline (i.e. horizontally)}
+
+\item{choiceNames, choiceValues}{List of names and values, respectively,
+that are displayed to the user in the app and correspond to the each
+choice (for this reason, \code{choiceNames} and \code{choiceValues}
+must have the same length). If either of these arguments is
+provided, then the other \emph{must} be provided and \code{choices}
+\emph{must not} be provided. The advantage of using both of these over
+a named list for \code{choices} is that \code{choiceNames} allows any
+type of UI object to be passed through (tag objects, icons, HTML code,
+...), instead of just simple text. See Examples.}
+
+\item{session}{The \code{session} object passed to function given to
+\code{shinyServer}. Default is \code{getDefaultReactiveDomain()}.}
+}
+\description{
+Change the value of a checkbox group input on the client
+}
+\details{
+The input updater functions send a message to the client, telling it to
+change the settings of an input object. The messages are collected and sent
+after all the observers (including outputs) have finished running.
+
+The syntax of these functions is similar to the functions that created the
+inputs in the first place. For example, \code{\link[shiny]{numericInput}()} and
+\code{updateNumericInput()} take a similar set of arguments.
+
+Any arguments with NULL values will be ignored; they will not result in any
+changes to the input object on the client.
+
+For \code{\link[shiny]{radioButtons}()}, \code{\link[shiny]{checkboxGroupInput}()} and
+\code{\link[shiny]{selectInput}()}, the set of choices can be cleared by using
+\code{choices=character(0)}. Similarly, for these inputs, the selected item
+can be cleared by using \code{selected=character(0)}.
+}
+\section{Aliased from Shiny}{
+ This function is an alias for \code{shiny::updateCheckboxGroupInput()} and is included to maintain more consistent naming conventions in Shiny apps that use \pkg{bslib}. The documentation on this page may still refer to the original function names. You can replace \code{shiny::updateCheckboxGroupInput()} with \code{update_checkbox_group()}.
+}
+
+\seealso{
+\code{\link[=input_checkbox_group]{input_checkbox_group()}} to create a checkbox group.
+
+Other Shiny update aliases: 
+\code{\link{update_action_button}()},
+\code{\link{update_action_link}()},
+\code{\link{update_checkbox}()},
+\code{\link{update_date}()},
+\code{\link{update_date_range}()},
+\code{\link{update_numeric}()},
+\code{\link{update_radio_buttons}()},
+\code{\link{update_select}()},
+\code{\link{update_selectize}()},
+\code{\link{update_slider}()},
+\code{\link{update_text}()},
+\code{\link{update_text_area}()}
+}
+\concept{Shiny update aliases}
diff --git a/man/update_date.Rd b/man/update_date.Rd
new file mode 100644
index 000000000..524aac828
--- /dev/null
+++ b/man/update_date.Rd
@@ -0,0 +1,78 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/shiny-input_date.R
+\name{update_date}
+\alias{update_date}
+\title{Change the value of a date input on the client}
+\usage{
+update_date(
+  id,
+  ...,
+  label = NULL,
+  value = NULL,
+  min = NULL,
+  max = NULL,
+  session = get_current_session()
+)
+}
+\arguments{
+\item{id}{An input id.}
+
+\item{...}{Ignored, included for future expansion.}
+
+\item{label}{The label to set for the input object.}
+
+\item{value}{The starting date. Either a Date object, or a string in
+\code{yyyy-mm-dd} format. If NULL (the default), will use the current date
+in the client's time zone.}
+
+\item{min}{The minimum allowed date. Either a Date object, or a string in
+\code{yyyy-mm-dd} format.}
+
+\item{max}{The maximum allowed date. Either a Date object, or a string in
+\code{yyyy-mm-dd} format.}
+
+\item{session}{The \code{session} object passed to function given to
+\code{shinyServer}. Default is \code{getDefaultReactiveDomain()}.}
+}
+\description{
+Change the value of a date input on the client
+}
+\details{
+The input updater functions send a message to the client, telling it to
+change the settings of an input object. The messages are collected and sent
+after all the observers (including outputs) have finished running.
+
+The syntax of these functions is similar to the functions that created the
+inputs in the first place. For example, \code{\link[shiny]{numericInput}()} and
+\code{updateNumericInput()} take a similar set of arguments.
+
+Any arguments with NULL values will be ignored; they will not result in any
+changes to the input object on the client.
+
+For \code{\link[shiny]{radioButtons}()}, \code{\link[shiny]{checkboxGroupInput}()} and
+\code{\link[shiny]{selectInput}()}, the set of choices can be cleared by using
+\code{choices=character(0)}. Similarly, for these inputs, the selected item
+can be cleared by using \code{selected=character(0)}.
+}
+\section{Aliased from Shiny}{
+ This function is an alias for \code{shiny::updateDateInput()} and is included to maintain more consistent naming conventions in Shiny apps that use \pkg{bslib}. The documentation on this page may still refer to the original function names. You can replace \code{shiny::updateDateInput()} with \code{update_date()}.
+}
+
+\seealso{
+\code{\link[=input_date]{input_date()}} to create a date input.
+
+Other Shiny update aliases: 
+\code{\link{update_action_button}()},
+\code{\link{update_action_link}()},
+\code{\link{update_checkbox}()},
+\code{\link{update_checkbox_group}()},
+\code{\link{update_date_range}()},
+\code{\link{update_numeric}()},
+\code{\link{update_radio_buttons}()},
+\code{\link{update_select}()},
+\code{\link{update_selectize}()},
+\code{\link{update_slider}()},
+\code{\link{update_text}()},
+\code{\link{update_text_area}()}
+}
+\concept{Shiny update aliases}
diff --git a/man/update_date_range.Rd b/man/update_date_range.Rd
new file mode 100644
index 000000000..a8a54250a
--- /dev/null
+++ b/man/update_date_range.Rd
@@ -0,0 +1,83 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/shiny-input_date_range.R
+\name{update_date_range}
+\alias{update_date_range}
+\title{Change the start and end values of a date range input on the client}
+\usage{
+update_date_range(
+  id,
+  ...,
+  label = NULL,
+  start = NULL,
+  end = NULL,
+  min = NULL,
+  max = NULL,
+  session = get_current_session()
+)
+}
+\arguments{
+\item{id}{An input id.}
+
+\item{...}{Ignored, included for future expansion.}
+
+\item{label}{The label to set for the input object.}
+
+\item{start}{The initial start date. Either a Date object, or a string in
+\code{yyyy-mm-dd} format. If NULL (the default), will use the current
+date in the client's time zone.}
+
+\item{end}{The initial end date. Either a Date object, or a string in
+\code{yyyy-mm-dd} format. If NULL (the default), will use the current
+date in the client's time zone.}
+
+\item{min}{The minimum allowed date. Either a Date object, or a string in
+\code{yyyy-mm-dd} format.}
+
+\item{max}{The maximum allowed date. Either a Date object, or a string in
+\code{yyyy-mm-dd} format.}
+
+\item{session}{The \code{session} object passed to function given to
+\code{shinyServer}. Default is \code{getDefaultReactiveDomain()}.}
+}
+\description{
+Change the start and end values of a date range input on the client
+}
+\details{
+The input updater functions send a message to the client, telling it to
+change the settings of an input object. The messages are collected and sent
+after all the observers (including outputs) have finished running.
+
+The syntax of these functions is similar to the functions that created the
+inputs in the first place. For example, \code{\link[shiny]{numericInput}()} and
+\code{updateNumericInput()} take a similar set of arguments.
+
+Any arguments with NULL values will be ignored; they will not result in any
+changes to the input object on the client.
+
+For \code{\link[shiny]{radioButtons}()}, \code{\link[shiny]{checkboxGroupInput}()} and
+\code{\link[shiny]{selectInput}()}, the set of choices can be cleared by using
+\code{choices=character(0)}. Similarly, for these inputs, the selected item
+can be cleared by using \code{selected=character(0)}.
+}
+\section{Aliased from Shiny}{
+ This function is an alias for \code{shiny::updateDateRangeInput()} and is included to maintain more consistent naming conventions in Shiny apps that use \pkg{bslib}. The documentation on this page may still refer to the original function names. You can replace \code{shiny::updateDateRangeInput()} with \code{update_date_range()}.
+}
+
+\seealso{
+\code{\link[=input_date_range]{input_date_range()}} to create a date range input.
+
+Other Shiny update aliases: 
+\code{\link{update_action_button}()},
+\code{\link{update_action_link}()},
+\code{\link{update_checkbox}()},
+\code{\link{update_checkbox_group}()},
+\code{\link{update_date}()},
+\code{\link{update_numeric}()},
+\code{\link{update_radio_buttons}()},
+\code{\link{update_select}()},
+\code{\link{update_selectize}()},
+\code{\link{update_slider}()},
+\code{\link{update_text}()},
+\code{\link{update_text_area}()}
+}
+\concept{Shiny update aliases}
diff --git a/man/update_numeric.Rd b/man/update_numeric.Rd
new file mode 100644
index 000000000..ec969c249
--- /dev/null
+++ b/man/update_numeric.Rd
@@ -0,0 +1,77 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/shiny-input_numeric.R
+\name{update_numeric}
+\alias{update_numeric}
+\title{Change the value of a number input on the client}
+\usage{
+update_numeric(
+  id,
+  ...,
+  label = NULL,
+  value = NULL,
+  min = NULL,
+  max = NULL,
+  step = NULL,
+  session = get_current_session()
+)
+}
+\arguments{
+\item{id}{An input id.}
+
+\item{...}{Ignored, included for future expansion.}
+
+\item{label}{The label to set for the input object.}
+
+\item{value}{Initial value.}
+
+\item{min}{Minimum allowed value}
+
+\item{max}{Maximum allowed value}
+
+\item{step}{Interval to use when stepping between min and max}
+
+\item{session}{The \code{session} object passed to function given to
+\code{shinyServer}. Default is \code{getDefaultReactiveDomain()}.}
+}
+\description{
+Change the value of a number input on the client
+}
+\details{
+The input updater functions send a message to the client, telling it to
+change the settings of an input object. The messages are collected and sent
+after all the observers (including outputs) have finished running.
+
+The syntax of these functions is similar to the functions that created the
+inputs in the first place. For example, \code{\link[shiny]{numericInput}()} and
+\code{updateNumericInput()} take a similar set of arguments.
+
+Any arguments with NULL values will be ignored; they will not result in any
+changes to the input object on the client.
+
+For \code{\link[shiny]{radioButtons}()}, \code{\link[shiny]{checkboxGroupInput}()} and
+\code{\link[shiny]{selectInput}()}, the set of choices can be cleared by using
+\code{choices=character(0)}. Similarly, for these inputs, the selected item
+can be cleared by using \code{selected=character(0)}.
+}
+\section{Aliased from Shiny}{
+ This function is an alias for \code{shiny::updateNumericInput()} and is included to maintain more consistent naming conventions in Shiny apps that use \pkg{bslib}. The documentation on this page may still refer to the original function names. You can replace \code{shiny::updateNumericInput()} with \code{update_numeric()}.
+}
+
+\seealso{
+\code{\link[=input_numeric]{input_numeric()}} to create a numeric input.
+
+Other Shiny update aliases: 
+\code{\link{update_action_button}()},
+\code{\link{update_action_link}()},
+\code{\link{update_checkbox}()},
+\code{\link{update_checkbox_group}()},
+\code{\link{update_date}()},
+\code{\link{update_date_range}()},
+\code{\link{update_radio_buttons}()},
+\code{\link{update_select}()},
+\code{\link{update_selectize}()},
+\code{\link{update_slider}()},
+\code{\link{update_text}()},
+\code{\link{update_text_area}()}
+}
+\concept{Shiny update aliases}
diff --git a/man/update_radio_buttons.Rd b/man/update_radio_buttons.Rd
new file mode 100644
index 000000000..04b1a3862
--- /dev/null
+++ b/man/update_radio_buttons.Rd
@@ -0,0 +1,91 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/shiny-input_radio_buttons.R
+\name{update_radio_buttons}
+\alias{update_radio_buttons}
+\title{Change the value of a radio input on the client}
+\usage{
+update_radio_buttons(
+  id,
+  ...,
+  label = NULL,
+  choices = NULL,
+  selected = NULL,
+  inline = FALSE,
+  choiceNames = NULL,
+  choiceValues = NULL,
+  session = get_current_session()
+)
+}
+\arguments{
+\item{id}{An input id.}
+
+\item{...}{Ignored, included for future expansion.}
+
+\item{label}{The label to set for the input object.}
+
+\item{choices}{List of values to select from (if elements of the list are
+named then that name rather than the value is displayed to the user). If
+this argument is provided, then \code{choiceNames} and \code{choiceValues} must not
+be provided, and vice-versa. The values should be strings; other types
+(such as logicals and numbers) will be coerced to strings.}
+
+\item{selected}{The initially selected value. If not specified, then it
+defaults to the first item in \code{choices}. To start with no items selected,
+use \code{character(0)}.}
+
+\item{inline}{If \code{TRUE}, render the choices inline (i.e. horizontally)}
+
+\item{choiceNames, choiceValues}{List of names and values, respectively, that
+are displayed to the user in the app and correspond to the each choice (for
+this reason, \code{choiceNames} and \code{choiceValues} must have the same length).
+If either of these arguments is provided, then the other \emph{must} be provided
+and \code{choices} \emph{must not} be provided. The advantage of using both of these
+over a named list for \code{choices} is that \code{choiceNames} allows any type of UI
+object to be passed through (tag objects, icons, HTML code, ...), instead
+of just simple text. See Examples.}
+
+\item{session}{The \code{session} object passed to function given to
+\code{shinyServer}. Default is \code{getDefaultReactiveDomain()}.}
+}
+\description{
+Change the value of a radio input on the client
+}
+\details{
+The input updater functions send a message to the client, telling it to
+change the settings of an input object. The messages are collected and sent
+after all the observers (including outputs) have finished running.
+
+The syntax of these functions is similar to the functions that created the
+inputs in the first place. For example, \code{\link[shiny]{numericInput}()} and
+\code{updateNumericInput()} take a similar set of arguments.
+
+Any arguments with NULL values will be ignored; they will not result in any
+changes to the input object on the client.
+
+For \code{\link[shiny]{radioButtons}()}, \code{\link[shiny]{checkboxGroupInput}()} and
+\code{\link[shiny]{selectInput}()}, the set of choices can be cleared by using
+\code{choices=character(0)}. Similarly, for these inputs, the selected item
+can be cleared by using \code{selected=character(0)}.
+}
+\section{Aliased from Shiny}{
+ This function is an alias for \code{shiny::updateRadioButtons()} and is included to maintain more consistent naming conventions in Shiny apps that use \pkg{bslib}. The documentation on this page may still refer to the original function names. You can replace \code{shiny::updateRadioButtons()} with \code{update_radio_buttons()}.
+}
+
+\seealso{
+\code{\link[=input_radio_buttons]{input_radio_buttons()}} to create a radio button input.
+
+Other Shiny update aliases: 
+\code{\link{update_action_button}()},
+\code{\link{update_action_link}()},
+\code{\link{update_checkbox}()},
+\code{\link{update_checkbox_group}()},
+\code{\link{update_date}()},
+\code{\link{update_date_range}()},
+\code{\link{update_numeric}()},
+\code{\link{update_select}()},
+\code{\link{update_selectize}()},
+\code{\link{update_slider}()},
+\code{\link{update_text}()},
+\code{\link{update_text_area}()}
+}
+\concept{Shiny update aliases}
diff --git a/man/update_select.Rd b/man/update_select.Rd
new file mode 100644
index 000000000..fa8667624
--- /dev/null
+++ b/man/update_select.Rd
@@ -0,0 +1,78 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/shiny-input_select.R
+\name{update_select}
+\alias{update_select}
+\title{Change the value of a select input on the client}
+\usage{
+update_select(
+  id,
+  ...,
+  label = NULL,
+  choices = NULL,
+  selected = NULL,
+  session = get_current_session()
+)
+}
+\arguments{
+\item{id}{An input id.}
+
+\item{...}{Ignored, included for future expansion.}
+
+\item{label}{The label to set for the input object.}
+
+\item{choices}{List of values to select from. If elements of the list are
+named, then that name --- rather than the value --- is displayed to the
+user. It's also possible to group related inputs by providing a named list
+whose elements are (either named or unnamed) lists, vectors, or factors. In
+this case, the outermost names will be used as the group labels (leveraging
+the \verb{} HTML tag) for the elements in the respective sublist. See
+the example section for a small demo of this feature.}
+
+\item{selected}{The initially selected value (or multiple values if \code{multiple = TRUE}). If not specified then defaults to the first value for
+single-select lists and no values for multiple select lists.}
+
+\item{session}{The \code{session} object passed to function given to
+\code{shinyServer}. Default is \code{getDefaultReactiveDomain()}.}
+}
+\description{
+Change the value of a select input on the client
+}
+\details{
+The input updater functions send a message to the client, telling it to
+change the settings of an input object. The messages are collected and sent
+after all the observers (including outputs) have finished running.
+
+The syntax of these functions is similar to the functions that created the
+inputs in the first place. For example, \code{\link[shiny]{numericInput}()} and
+\code{updateNumericInput()} take a similar set of arguments.
+
+Any arguments with NULL values will be ignored; they will not result in any
+changes to the input object on the client.
+
+For \code{\link[shiny]{radioButtons}()}, \code{\link[shiny]{checkboxGroupInput}()} and
+\code{\link[shiny]{selectInput}()}, the set of choices can be cleared by using
+\code{choices=character(0)}. Similarly, for these inputs, the selected item
+can be cleared by using \code{selected=character(0)}.
+}
+\section{Aliased from Shiny}{
+ This function is an alias for \code{shiny::updateSelectInput()} and is included to maintain more consistent naming conventions in Shiny apps that use \pkg{bslib}. The documentation on this page may still refer to the original function names. You can replace \code{shiny::updateSelectInput()} with \code{update_select()}.
+}
+
+\seealso{
+\code{\link[=input_select]{input_select()}} to create a select input.
+
+Other Shiny update aliases: 
+\code{\link{update_action_button}()},
+\code{\link{update_action_link}()},
+\code{\link{update_checkbox}()},
+\code{\link{update_checkbox_group}()},
+\code{\link{update_date}()},
+\code{\link{update_date_range}()},
+\code{\link{update_numeric}()},
+\code{\link{update_radio_buttons}()},
+\code{\link{update_selectize}()},
+\code{\link{update_slider}()},
+\code{\link{update_text}()},
+\code{\link{update_text_area}()}
+}
+\concept{Shiny update aliases}
diff --git a/man/update_selectize.Rd b/man/update_selectize.Rd
new file mode 100644
index 000000000..3a63132ac
--- /dev/null
+++ b/man/update_selectize.Rd
@@ -0,0 +1,90 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/shiny-input_selectize.R
+\name{update_selectize}
+\alias{update_selectize}
+\title{Change the value of a select input on the client}
+\usage{
+update_selectize(
+  id,
+  ...,
+  label = NULL,
+  choices = NULL,
+  selected = NULL,
+  options = list(),
+  server = FALSE,
+  session = get_current_session()
+)
+}
+\arguments{
+\item{id}{An input id.}
+
+\item{...}{Ignored, included for future expansion.}
+
+\item{label}{The label to set for the input object.}
+
+\item{choices}{List of values to select from. If elements of the list are
+named, then that name --- rather than the value --- is displayed to the
+user. It's also possible to group related inputs by providing a named list
+whose elements are (either named or unnamed) lists, vectors, or factors. In
+this case, the outermost names will be used as the group labels (leveraging
+the \verb{} HTML tag) for the elements in the respective sublist. See
+the example section for a small demo of this feature.}
+
+\item{selected}{The initially selected value (or multiple values if \code{multiple = TRUE}). If not specified then defaults to the first value for
+single-select lists and no values for multiple select lists.}
+
+\item{options}{A list of options. See the documentation of \pkg{selectize.js}(\url{https://selectize.dev/docs/usage})
+for possible options (character option values inside \code{\link[base:AsIs]{base::I()}} will
+be treated as literal JavaScript code; see \code{\link[shiny:renderDataTable]{renderDataTable()}}
+for details).}
+
+\item{server}{whether to store \code{choices} on the server side, and load
+the select options dynamically on searching, instead of writing all
+\code{choices} into the page at once (i.e., only use the client-side
+version of \pkg{selectize.js})}
+
+\item{session}{The \code{session} object passed to function given to
+\code{shinyServer}. Default is \code{getDefaultReactiveDomain()}.}
+}
+\description{
+Change the value of a select input on the client
+}
+\details{
+The input updater functions send a message to the client, telling it to
+change the settings of an input object. The messages are collected and sent
+after all the observers (including outputs) have finished running.
+
+The syntax of these functions is similar to the functions that created the
+inputs in the first place. For example, \code{\link[shiny]{numericInput}()} and
+\code{updateNumericInput()} take a similar set of arguments.
+
+Any arguments with NULL values will be ignored; they will not result in any
+changes to the input object on the client.
+
+For \code{\link[shiny]{radioButtons}()}, \code{\link[shiny]{checkboxGroupInput}()} and
+\code{\link[shiny]{selectInput}()}, the set of choices can be cleared by using
+\code{choices=character(0)}. Similarly, for these inputs, the selected item
+can be cleared by using \code{selected=character(0)}.
+}
+\section{Aliased from Shiny}{
+ This function is an alias for \code{shiny::updateSelectizeInput()} and is included to maintain more consistent naming conventions in Shiny apps that use \pkg{bslib}. The documentation on this page may still refer to the original function names. You can replace \code{shiny::updateSelectizeInput()} with \code{update_selectize()}.
+}
+
+\seealso{
+\code{\link[=input_selectize]{input_selectize()}} to create a selectize input.
+
+Other Shiny update aliases: 
+\code{\link{update_action_button}()},
+\code{\link{update_action_link}()},
+\code{\link{update_checkbox}()},
+\code{\link{update_checkbox_group}()},
+\code{\link{update_date}()},
+\code{\link{update_date_range}()},
+\code{\link{update_numeric}()},
+\code{\link{update_radio_buttons}()},
+\code{\link{update_select}()},
+\code{\link{update_slider}()},
+\code{\link{update_text}()},
+\code{\link{update_text_area}()}
+}
+\concept{Shiny update aliases}
diff --git a/man/update_slider.Rd b/man/update_slider.Rd
new file mode 100644
index 000000000..486278a91
--- /dev/null
+++ b/man/update_slider.Rd
@@ -0,0 +1,98 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/shiny-input_slider.R
+\name{update_slider}
+\alias{update_slider}
+\title{Update Slider Input Widget}
+\usage{
+update_slider(
+  id,
+  ...,
+  label = NULL,
+  value = NULL,
+  min = NULL,
+  max = NULL,
+  step = NULL,
+  timeFormat = NULL,
+  timezone = NULL,
+  session = get_current_session()
+)
+}
+\arguments{
+\item{id}{An input id.}
+
+\item{...}{Ignored, included for future expansion.}
+
+\item{label}{The label to set for the input object.}
+
+\item{value}{The initial value of the slider, either a number, a date
+(class Date), or a date-time (class POSIXt). A length one vector will
+create a regular slider; a length two vector will create a double-ended
+range slider. Must lie between \code{min} and \code{max}.}
+
+\item{min, max}{The minimum and maximum values (inclusive) that can be
+selected.}
+
+\item{step}{Specifies the interval between each selectable value on the
+slider. Either \code{NULL}, the default, which uses a heuristic to determine the
+step size or a single number. If the values are dates, \code{step} is in days;
+if the values are date-times, \code{step} is in seconds.}
+
+\item{timeFormat}{Only used if the values are Date or POSIXt objects. A time
+format string, to be passed to the Javascript strftime library. See
+\url{https://github.com/samsonjs/strftime} for more details. The allowed
+format specifications are very similar, but not identical, to those for R's
+\code{\link[base:strptime]{base::strftime()}} function. For Dates, the default is \code{"\%F"}
+(like \code{"2015-07-01"}), and for POSIXt, the default is \code{"\%F \%T"}
+(like \code{"2015-07-01 15:32:10"}).}
+
+\item{timezone}{Only used if the values are POSIXt objects. A string
+specifying the time zone offset for the displayed times, in the format
+\code{"+HHMM"} or \code{"-HHMM"}. If \code{NULL} (the default), times will
+be displayed in the browser's time zone. The value \code{"+0000"} will
+result in UTC time.}
+
+\item{session}{The \code{session} object passed to function given to
+\code{shinyServer}. Default is \code{getDefaultReactiveDomain()}.}
+}
+\description{
+Change the value of a slider input on the client.
+}
+\details{
+The input updater functions send a message to the client, telling it to
+change the settings of an input object. The messages are collected and sent
+after all the observers (including outputs) have finished running.
+
+The syntax of these functions is similar to the functions that created the
+inputs in the first place. For example, \code{\link[shiny]{numericInput}()} and
+\code{updateNumericInput()} take a similar set of arguments.
+
+Any arguments with NULL values will be ignored; they will not result in any
+changes to the input object on the client.
+
+For \code{\link[shiny]{radioButtons}()}, \code{\link[shiny]{checkboxGroupInput}()} and
+\code{\link[shiny]{selectInput}()}, the set of choices can be cleared by using
+\code{choices=character(0)}. Similarly, for these inputs, the selected item
+can be cleared by using \code{selected=character(0)}.
+}
+\section{Aliased from Shiny}{
+ This function is an alias for \code{shiny::updateSliderInput()} and is included to maintain more consistent naming conventions in Shiny apps that use \pkg{bslib}. The documentation on this page may still refer to the original function names. You can replace \code{shiny::updateSliderInput()} with \code{update_slider()}.
+}
+
+\seealso{
+\code{\link[=input_slider]{input_slider()}} to create a slider input.
+
+Other Shiny update aliases: 
+\code{\link{update_action_button}()},
+\code{\link{update_action_link}()},
+\code{\link{update_checkbox}()},
+\code{\link{update_checkbox_group}()},
+\code{\link{update_date}()},
+\code{\link{update_date_range}()},
+\code{\link{update_numeric}()},
+\code{\link{update_radio_buttons}()},
+\code{\link{update_select}()},
+\code{\link{update_selectize}()},
+\code{\link{update_text}()},
+\code{\link{update_text_area}()}
+}
+\concept{Shiny update aliases}
diff --git a/man/update_text.Rd b/man/update_text.Rd
new file mode 100644
index 000000000..acc84527d
--- /dev/null
+++ b/man/update_text.Rd
@@ -0,0 +1,73 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/shiny-input_text.R
+\name{update_text}
+\alias{update_text}
+\title{Change the value of a text input on the client}
+\usage{
+update_text(
+  id,
+  ...,
+  label = NULL,
+  value = NULL,
+  placeholder = NULL,
+  session = get_current_session()
+)
+}
+\arguments{
+\item{id}{An input id.}
+
+\item{...}{Ignored, included for future expansion.}
+
+\item{label}{The label to set for the input object.}
+
+\item{value}{Initial value.}
+
+\item{placeholder}{A character string giving the user a hint as to what can
+be entered into the control. Internet Explorer 8 and 9 do not support this
+option.}
+
+\item{session}{The \code{session} object passed to function given to
+\code{shinyServer}. Default is \code{getDefaultReactiveDomain()}.}
+}
+\description{
+Change the value of a text input on the client
+}
+\details{
+The input updater functions send a message to the client, telling it to
+change the settings of an input object. The messages are collected and sent
+after all the observers (including outputs) have finished running.
+
+The syntax of these functions is similar to the functions that created the
+inputs in the first place. For example, \code{\link[shiny]{numericInput}()} and
+\code{updateNumericInput()} take a similar set of arguments.
+
+Any arguments with NULL values will be ignored; they will not result in any
+changes to the input object on the client.
+
+For \code{\link[shiny]{radioButtons}()}, \code{\link[shiny]{checkboxGroupInput}()} and
+\code{\link[shiny]{selectInput}()}, the set of choices can be cleared by using
+\code{choices=character(0)}. Similarly, for these inputs, the selected item
+can be cleared by using \code{selected=character(0)}.
+}
+\section{Aliased from Shiny}{
+ This function is an alias for \code{shiny::updateTextInput()} and is included to maintain more consistent naming conventions in Shiny apps that use \pkg{bslib}. The documentation on this page may still refer to the original function names. You can replace \code{shiny::updateTextInput()} with \code{update_text()}.
+}
+
+\seealso{
+\code{\link[=input_text]{input_text()}} to create a text input.
+
+Other Shiny update aliases: 
+\code{\link{update_action_button}()},
+\code{\link{update_action_link}()},
+\code{\link{update_checkbox}()},
+\code{\link{update_checkbox_group}()},
+\code{\link{update_date}()},
+\code{\link{update_date_range}()},
+\code{\link{update_numeric}()},
+\code{\link{update_radio_buttons}()},
+\code{\link{update_select}()},
+\code{\link{update_selectize}()},
+\code{\link{update_slider}()},
+\code{\link{update_text_area}()}
+}
+\concept{Shiny update aliases}
diff --git a/man/update_text_area.Rd b/man/update_text_area.Rd
new file mode 100644
index 000000000..b30c8e136
--- /dev/null
+++ b/man/update_text_area.Rd
@@ -0,0 +1,73 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/shiny-input_text_area.R
+\name{update_text_area}
+\alias{update_text_area}
+\title{Change the value of a textarea input on the client}
+\usage{
+update_text_area(
+  id,
+  ...,
+  label = NULL,
+  value = NULL,
+  placeholder = NULL,
+  session = get_current_session()
+)
+}
+\arguments{
+\item{id}{An input id.}
+
+\item{...}{Ignored, included for future expansion.}
+
+\item{label}{The label to set for the input object.}
+
+\item{value}{Initial value.}
+
+\item{placeholder}{A character string giving the user a hint as to what can
+be entered into the control. Internet Explorer 8 and 9 do not support this
+option.}
+
+\item{session}{The \code{session} object passed to function given to
+\code{shinyServer}. Default is \code{getDefaultReactiveDomain()}.}
+}
+\description{
+Change the value of a textarea input on the client
+}
+\details{
+The input updater functions send a message to the client, telling it to
+change the settings of an input object. The messages are collected and sent
+after all the observers (including outputs) have finished running.
+
+The syntax of these functions is similar to the functions that created the
+inputs in the first place. For example, \code{\link[shiny]{numericInput}()} and
+\code{updateNumericInput()} take a similar set of arguments.
+
+Any arguments with NULL values will be ignored; they will not result in any
+changes to the input object on the client.
+
+For \code{\link[shiny]{radioButtons}()}, \code{\link[shiny]{checkboxGroupInput}()} and
+\code{\link[shiny]{selectInput}()}, the set of choices can be cleared by using
+\code{choices=character(0)}. Similarly, for these inputs, the selected item
+can be cleared by using \code{selected=character(0)}.
+}
+\section{Aliased from Shiny}{
+ This function is an alias for \code{shiny::updateTextAreaInput()} and is included to maintain more consistent naming conventions in Shiny apps that use \pkg{bslib}. The documentation on this page may still refer to the original function names. You can replace \code{shiny::updateTextAreaInput()} with \code{update_text_area()}.
+}
+
+\seealso{
+\code{\link[=input_text_area]{input_text_area()}} to create a text area input.
+
+Other Shiny update aliases: 
+\code{\link{update_action_button}()},
+\code{\link{update_action_link}()},
+\code{\link{update_checkbox}()},
+\code{\link{update_checkbox_group}()},
+\code{\link{update_date}()},
+\code{\link{update_date_range}()},
+\code{\link{update_numeric}()},
+\code{\link{update_radio_buttons}()},
+\code{\link{update_select}()},
+\code{\link{update_selectize}()},
+\code{\link{update_slider}()},
+\code{\link{update_text}()}
+}
+\concept{Shiny update aliases}