diff --git a/404.html b/404.html index ab3b4d5f1..9cd6c26f8 100644 --- a/404.html +++ b/404.html @@ -39,7 +39,7 @@ shiny - 1.8.1.9000 + 1.8.1.9001 diff --git a/CONTRIBUTING.html b/CONTRIBUTING.html index aa43f39f8..7ab80bc87 100644 --- a/CONTRIBUTING.html +++ b/CONTRIBUTING.html @@ -17,7 +17,7 @@ shiny - 1.8.1.9000 + 1.8.1.9001 diff --git a/LICENSE-text.html b/LICENSE-text.html index 1ecb64bc1..86fa9fdd0 100644 --- a/LICENSE-text.html +++ b/LICENSE-text.html @@ -17,7 +17,7 @@ shiny - 1.8.1.9000 + 1.8.1.9001 diff --git a/TODO-promises.html b/TODO-promises.html index d9797135b..09f9a187e 100644 --- a/TODO-promises.html +++ b/TODO-promises.html @@ -17,7 +17,7 @@ shiny - 1.8.1.9000 + 1.8.1.9001 diff --git a/apple-touch-icon-120x120.png b/apple-touch-icon-120x120.png index f8105ebe6..af3734efb 100644 Binary files a/apple-touch-icon-120x120.png and b/apple-touch-icon-120x120.png differ diff --git a/apple-touch-icon-152x152.png b/apple-touch-icon-152x152.png index d50a1d1e6..0e5c0a01e 100644 Binary files a/apple-touch-icon-152x152.png and b/apple-touch-icon-152x152.png differ diff --git a/apple-touch-icon-180x180.png b/apple-touch-icon-180x180.png index 23de33ed1..acb7861c9 100644 Binary files a/apple-touch-icon-180x180.png and b/apple-touch-icon-180x180.png differ diff --git a/apple-touch-icon-60x60.png b/apple-touch-icon-60x60.png index f4a1d4761..55fac61af 100644 Binary files a/apple-touch-icon-60x60.png and b/apple-touch-icon-60x60.png differ diff --git a/apple-touch-icon-76x76.png b/apple-touch-icon-76x76.png index 9c62339a5..ddf4796a9 100644 Binary files a/apple-touch-icon-76x76.png and b/apple-touch-icon-76x76.png differ diff --git a/apple-touch-icon.png b/apple-touch-icon.png index 0a20c2c30..fcf983836 100644 Binary files a/apple-touch-icon.png and b/apple-touch-icon.png differ diff --git a/authors.html b/authors.html index e9dd19ef3..79217b387 100644 --- a/authors.html +++ b/authors.html @@ -17,7 +17,7 @@ shiny - 1.8.1.9000 + 1.8.1.9001 @@ -199,14 +199,14 @@

Chang W, Cheng J, Allaire J, Sievert C, Schloerke B, Xie Y, Allen J, McPherson J, Dipert A, Borges B (2024). shiny: Web Application Framework for R. -R package version 1.8.1.9000, +R package version 1.8.1.9001, https://github.com/rstudio/shiny, https://shiny.posit.co/.

@Manual{,
   title = {shiny: Web Application Framework for R},
   author = {Winston Chang and Joe Cheng and JJ Allaire and Carson Sievert and Barret Schloerke and Yihui Xie and Jeff Allen and Jonathan McPherson and Alan Dipert and Barbara Borges},
   year = {2024},
-  note = {R package version 1.8.1.9000, 
+  note = {R package version 1.8.1.9001, 
 https://github.com/rstudio/shiny},
   url = {https://shiny.posit.co/},
 }
diff --git a/favicon-16x16.png b/favicon-16x16.png index 0ceb14d1e..4835409eb 100644 Binary files a/favicon-16x16.png and b/favicon-16x16.png differ diff --git a/favicon-32x32.png b/favicon-32x32.png index 97c45502a..c38dd2479 100644 Binary files a/favicon-32x32.png and b/favicon-32x32.png differ diff --git a/index.html b/index.html index 19ceb774e..1e9237531 100644 --- a/index.html +++ b/index.html @@ -40,7 +40,7 @@ shiny - 1.8.1.9000 + 1.8.1.9001 diff --git a/news/index.html b/news/index.html index 1a21c151d..1df44cb00 100644 --- a/news/index.html +++ b/news/index.html @@ -17,7 +17,7 @@ shiny - 1.8.1.9000 + 1.8.1.9001 @@ -51,7 +51,8 @@

New features and improvements

-

Bug fixes

@@ -228,7 +229,7 @@

Bootstrap 5 support. (#3410 and rstudio/bslib#304)

-
  • Closed #3322, #3313, #1823, #3321, #3320, #1928, and #2310: Various improvements to navbarPage(), tabsetPanel(), tabPanel(), navbarMenu(), etc. Also, these functions are now powered by the bslib package’s new nav() API (consider using bslib’s API to create better looking and more fully featured navs). (#3388)

  • +
  • Closed #3322, #3313, #1823, #3321, #3320, #1928, and #2310: Various improvements to navbarPage(), tabsetPanel(), tabPanel(), navbarMenu(), etc. Also, these functions are now powered by the bslib package’s new nav() API (consider using bslib’s API to create better looking and more fully featured navs). (#3388)

  • All uses of list(...) have been replaced with rlang::list2(...). This means that you can use trailing , without error and use rlang’s !!! operator to “splice” a list of argument values into .... We think this’ll be particularly useful for passing a list of tabPanel() to their consumers (i.e., tabsetPanel(), navbarPage(), etc). For example, tabs <- list(tabPanel("A", "a"), tabPanel("B", "b")); navbarPage(!!!tabs). (#3315 and #3328)

  • installExprFunction() and exprToFunction() are now able to handle quosures when quoted = TRUE. So render-functions which call these functions (such as with htmlwidgets) can now understand quosures. Users can also use rlang::inject() to unquote a quosure for evaluation. This also means that render function no longer need env and quoted parameters; that information can be embedded into a quosure which is then passed to the render function. Better documentation was added for how to create render functions. (#3472)

  • icon(lib="fontawesome") is now powered by the fontawesome package, which will make it easier to use the latest FA icons in the future (by updating the fontawesome package). (#3302)

  • diff --git a/pkgdown.yml b/pkgdown.yml index 55318e330..3e54175aa 100644 --- a/pkgdown.yml +++ b/pkgdown.yml @@ -2,5 +2,5 @@ pandoc: 3.1.11 pkgdown: 2.0.9 pkgdown_sha: ~ articles: {} -last_built: 2024-05-07T22:49Z +last_built: 2024-05-10T20:01Z diff --git a/reference/ExtendedTask.html b/reference/ExtendedTask.html index 6948dbca3..9df05e493 100644 --- a/reference/ExtendedTask.html +++ b/reference/ExtendedTask.html @@ -34,7 +34,7 @@ begin until the previous invocation has completed."> shiny - 1.8.1.9000 + 1.8.1.9001
    diff --git a/reference/MockShinySession.html b/reference/MockShinySession.html index 4ddb2d4e5..f7e53946e 100644 --- a/reference/MockShinySession.html +++ b/reference/MockShinySession.html @@ -28,7 +28,7 @@ of testServer()."> shiny - 1.8.1.9000 + 1.8.1.9001 diff --git a/reference/NS.html b/reference/NS.html index 031549b56..f007cb4f4 100644 --- a/reference/NS.html +++ b/reference/NS.html @@ -19,7 +19,7 @@ modules. See https://shiny.rstudio.com/articles/modules.html."> shiny - 1.8.1.9000 + 1.8.1.9001 diff --git a/reference/Progress.html b/reference/Progress.html index 68fa4f48a..9c4f7bb89 100644 --- a/reference/Progress.html +++ b/reference/Progress.html @@ -18,7 +18,7 @@ Reporting progress (object-oriented API)"> shiny - 1.8.1.9000 + 1.8.1.9001 diff --git a/reference/absolutePanel.html b/reference/absolutePanel.html index d5b8ab092..d068afba6 100644 --- a/reference/absolutePanel.html +++ b/reference/absolutePanel.html @@ -17,7 +17,7 @@ shiny - 1.8.1.9000 + 1.8.1.9001 diff --git a/reference/actionButton.html b/reference/actionButton.html index 3619605f7..e7ba5db68 100644 --- a/reference/actionButton.html +++ b/reference/actionButton.html @@ -18,7 +18,7 @@ each time it is pressed."> + + +
    +
    + + + +
    +
    + + +
    +

    When busy indicators are enabled (see useBusyIndicators()), a spinner is +shown on each calculating/recalculating output, and a pulsing banner is shown +at the top of the page when the app is otherwise busy. This function allows +you to customize the appearance of those busy indicators. To apply the +customization, include the result of this function inside the app's UI.

    +
    + +
    +
    busyIndicatorOptions(
    +  ...,
    +  spinner_type = NULL,
    +  spinner_color = NULL,
    +  spinner_size = NULL,
    +  spinner_delay = NULL,
    +  spinner_selector = NULL,
    +  pulse_background = NULL,
    +  pulse_height = NULL,
    +  pulse_speed = NULL
    +)
    +
    + +
    +

    Arguments

    +
    ...
    +

    Currently ignored.

    + + +
    spinner_type
    +

    The type of spinner. Pre-bundled types include: +'ring', 'ring2', 'ring3', 'bars', 'bars2', 'bars3', 'pulse', 'pulse2', 'pulse3', 'dots', 'dots2', 'dots3'.

    +

    A path to a local SVG file can also be provided. The SVG should adhere to +the following rules:

    • The SVG itself should contain the animation.

    • +
    • It should avoid absolute sizes (the spinner's containing DOM element +size is set in CSS by spinner_size, so it should fill that container).

    • +
    • It should avoid setting absolute colors (the spinner's containing DOM element +color is set in CSS by spinner_color, so it should inherit that color).

    • +
    + + +
    spinner_color
    +

    The color of the spinner. This can be any valid CSS +color. Defaults to the app's "primary" color if Bootstrap is on the page.

    + + +
    spinner_size
    +

    The size of the spinner. This can be any valid CSS size.

    + + +
    spinner_delay
    +

    The amount of time to wait before showing the spinner. +This can be any valid CSS time and can be useful for not showing the spinner +if the computation finishes quickly.

    + + +
    spinner_selector
    +

    A character string containing a CSS selector for +scoping the spinner customization. The default (NULL) will apply the +spinner customization to the parent element of the spinner.

    + + +
    pulse_background
    +

    A CSS background definition for the pulse. The +default uses a +linear-gradient +of the theme's indigo, purple, and pink colors.

    + + +
    pulse_height
    +

    The height of the pulsing banner. This can be any valid +CSS size.

    + + +
    pulse_speed
    +

    The speed of the pulsing banner. This can be any valid CSS +time.

    + +
    +
    +

    See also

    +

    useBusyIndicators() for enabling/disabling busy indicators.

    +
    + +
    +

    Examples

    +
    if (FALSE) { # rlang::is_interactive()
    +
    +library(bslib)
    +
    +card_ui <- function(id, spinner_type = id) {
    +  card(
    +    busyIndicatorOptions(spinner_type = spinner_type),
    +    card_header(paste("Spinner:", spinner_type)),
    +    plotOutput(shiny::NS(id, "plot"))
    +  )
    +}
    +
    +card_server <- function(id, simulate = reactive()) {
    +  moduleServer(
    +    id = id,
    +    function(input, output, session) {
    +      output$plot <- renderPlot({
    +        Sys.sleep(1)
    +        simulate()
    +        plot(x = rnorm(100), y = rnorm(100))
    +      })
    +    }
    +  )
    +}
    +
    +ui <- page_fillable(
    +  useBusyIndicators(),
    +  input_task_button("simulate", "Simulate", icon = icon("refresh")),
    +  layout_columns(
    +    card_ui("ring"),
    +    card_ui("bars"),
    +    card_ui("dots"),
    +    card_ui("pulse"),
    +    col_widths = 6
    +  )
    +)
    +
    +server <- function(input, output, session) {
    +  simulate <- reactive(input$simulate)
    +  card_server("ring", simulate)
    +  card_server("bars", simulate)
    +  card_server("dots", simulate)
    +  card_server("pulse", simulate)
    +}
    +
    +shinyApp(ui, server)
    +}
    +
    +
    +
    + +
    + + +
    + + + + + + + + diff --git a/reference/callModule.html b/reference/callModule.html index db182d04d..a34194327 100644 --- a/reference/callModule.html +++ b/reference/callModule.html @@ -20,7 +20,7 @@ testServer()."> shiny - 1.8.1.9000 + 1.8.1.9001 diff --git a/reference/checkboxGroupInput.html b/reference/checkboxGroupInput.html index 77e831214..f90748639 100644 --- a/reference/checkboxGroupInput.html +++ b/reference/checkboxGroupInput.html @@ -19,7 +19,7 @@ selected values."> shiny - 1.8.1.9000 + 1.8.1.9001 diff --git a/reference/checkboxInput.html b/reference/checkboxInput.html index c77e9c3a1..009d3f2d4 100644 --- a/reference/checkboxInput.html +++ b/reference/checkboxInput.html @@ -17,7 +17,7 @@ shiny - 1.8.1.9000 + 1.8.1.9001 diff --git a/reference/clickOpts.html b/reference/clickOpts.html index 36e00a856..44ef30588 100644 --- a/reference/clickOpts.html +++ b/reference/clickOpts.html @@ -18,7 +18,7 @@ hover events generated by imageOutput() and plotOutput()."> shiny - 1.8.1.9000 + 1.8.1.9001 diff --git a/reference/column.html b/reference/column.html index ac120b748..10465ceaa 100644 --- a/reference/column.html +++ b/reference/column.html @@ -18,7 +18,7 @@ fixedRow()"> shiny - 1.8.1.9000 + 1.8.1.9001 diff --git a/reference/conditionalPanel.html b/reference/conditionalPanel.html index 60dd40083..da3501187 100644 --- a/reference/conditionalPanel.html +++ b/reference/conditionalPanel.html @@ -19,7 +19,7 @@ whenever Shiny detects a relevant change in input/output."> shiny - 1.8.1.9000 + 1.8.1.9001 diff --git a/reference/createRenderFunction.html b/reference/createRenderFunction.html index ee6f74dd0..a9b2bea61 100644 --- a/reference/createRenderFunction.html +++ b/reference/createRenderFunction.html @@ -22,7 +22,7 @@ additional call(s)."> + + +
    +
    + + + +
    +
    + + +
    +

    Busy indicators provide a visual cue to users when the server is busy +calculating outputs or otherwise performing tasks (e.g., producing +downloads). When enabled, a spinner is shown on each +calculating/recalculating output, and a pulsing banner is shown at the top of +the page when the app is otherwise busy. Busy indication is enabled by +default for UI created with bslib, but must be enabled otherwise. To +enable/disable, include the result of this function in anywhere in the app's +UI.

    +
    + +
    +
    useBusyIndicators(..., spinners = TRUE, pulse = TRUE)
    +
    + +
    +

    Arguments

    +
    ...
    +

    Currently ignored.

    + + +
    spinners
    +

    Whether to show a spinner on each calculating/recalculating +output.

    + + +
    pulse
    +

    Whether to show a pulsing banner at the top of the page when the +app is busy.

    + +
    +
    +

    Details

    +

    When both spinners and pulse are set to TRUE, the pulse is +automatically disabled when spinner(s) are active. When both spinners and +pulse are set to FALSE, no busy indication is shown (other than the +graying out of recalculating outputs).

    +
    +
    +

    See also

    +

    busyIndicatorOptions() for customizing the appearance of the busy +indicators.

    +
    + +
    +

    Examples

    +
    if (FALSE) { # rlang::is_interactive()
    +
    +library(bslib)
    +
    +ui <- page_fillable(
    +  useBusyIndicators(),
    +  card(
    +    card_header(
    +      "A plot",
    +      input_task_button("simulate", "Simulate"),
    +      class = "d-flex justify-content-between align-items-center"
    +    ),
    +    plotOutput("p"),
    +  )
    +)
    +
    +server <- function(input, output) {
    +  output$p <- renderPlot({
    +    input$simulate
    +    Sys.sleep(4)
    +    plot(x = rnorm(100), y = rnorm(100))
    +  })
    +}
    +
    +shinyApp(ui, server)
    +}
    +
    +
    +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.0.9.

    +
    + +
    + + + + + + + + diff --git a/reference/validate.html b/reference/validate.html index 9d00e99b0..68655d847 100644 --- a/reference/validate.html +++ b/reference/validate.html @@ -24,7 +24,7 @@ automatically propagate to outputs that use the reactive.'> shiny - 1.8.1.9000 + 1.8.1.9001 diff --git a/reference/varSelectInput.html b/reference/varSelectInput.html index 57bd49677..77d2485ce 100644 --- a/reference/varSelectInput.html +++ b/reference/varSelectInput.html @@ -18,7 +18,7 @@ from the column names of a data frame."> shiny - 1.8.1.9000 + 1.8.1.9001 diff --git a/reference/verticalLayout.html b/reference/verticalLayout.html index 2aa3097ad..3b84e798e 100644 --- a/reference/verticalLayout.html +++ b/reference/verticalLayout.html @@ -18,7 +18,7 @@ passed to the container will appear on it's own line in the UI)"> shiny - 1.8.1.9000 + 1.8.1.9001 diff --git a/reference/viewer.html b/reference/viewer.html index 05b1ded9b..9c45fc57f 100644 --- a/reference/viewer.html +++ b/reference/viewer.html @@ -21,7 +21,7 @@ utils::browseURL()).">