Upgrade notes for Shiny 1.7.0
Full changelog
Breaking changes
The
format
andlocale
arguments tosliderInput()
have been removed. They have been deprecated since 0.10.2.2 (released on 2014-12-08).Closed #3403:
insertTab()
’sposition
parameter now defaults to"after"
instead of"before"
. This has the benefit of allowing us to fix a bug in positioning whentarget = NULL
, but has the drawback of changing the default behavior whentarget
is notNULL
. (#3404)
New features and improvements
Bootstrap 5 support. (#3410 and rstudio/bslib#304)
- As explained here, to opt-in to Bootstrap 5, provide
bslib::bs_theme(version = 5)
to a page layout function with atheme
argument (e.g.,fluidPage()
,navbarPage()
, etc).
- As explained here, to opt-in to Bootstrap 5, provide
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 newnav()
API (consider using bslib’s API to create better looking and more fully featured navs). (#3388)All uses of
list(...)
have been replaced withrlang::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 oftabPanel()
to their consumers (i.e.,tabsetPanel()
,navbarPage()
, etc). For example,tabs <- list(tabPanel("A", "a"), tabPanel("B", "b")); navbarPage(!!!tabs)
. (#3315 and #3328)installExprFunction()
andexprToFunction()
are now able to handle quosures whenquoted = TRUE
. Sorender
-functions which call these functions (such as withhtmlwidgets
) can now understand quosures. Users can also userlang::inject()
to unquote a quosure for evaluation. This also means thatrender
function no longer needenv
andquoted
parameters; that information can be embedded into a quosure which is then passed to therender
function. Better documentation was added for how to createrender
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)Closed #3397:
renderPlot()
new usesggplot2::get_alt_text()
to inform analt
text default (for ggplot2 plots). (#3398)modalDialog()
gains support forsize = "xl"
. (#3410)Addressed #2521: Updated the list of TCP ports that will be rejected by default in runapp.R, adding 5060, 5061 and 6566. Added documentation describing the port range (3000:8000) and which ports are rejected. (#3456)
Other improvements
Shiny’s core JavaScript code was converted to TypeScript. For the latest development information, please see the README.md in
./srcts
. (#3296)Switched from
digest::digest()
torlang::hash()
for hashing. (#3264)Switched from internal
Stack
class tofastmap::faststack()
, and usedfastmap::fastqueue()
. (#3176)Some long-deprecated functions and function parameters were removed. (#3137)
Bug fixes
Closed #3345: Shiny now correctly renders
htmltools::htmlDependency()
(s) with alist()
ofscript
attributes when used in a dynamic UI context. This fairly newhtmlDependency()
feature was added in htmltools v0.5.1. (#3395)Fixed #2666 and #2670:
nearPoints()
andbrushedPoints()
weren’t properly account for missing values (#2666 was introduced in v1.4.0). (#2668)Closed #3374:
quoToFunction()
now works correctly with nested quosures; and as a result, quasi-quotation with rendering function (e.g.,renderPrint()
,renderPlot()
, etc) now works as expected with nested quosures. (#3373)Exported
register_devmode_option()
. This method was described in the documentation fordevmode()
but was never exported. See?devmode()
for more details on how to register Shiny Developer options usingregister_devmode_option()
. (#3364)Closed #3484: In the RStudio IDE on Mac 11.5, selected checkboxes and radio buttons were not visible. (#3485)