Log message:
(www/R-shiny) Updatedd 1.7.4 to 1.8.1.1, make test not tried at all
# shiny 1.8.1.1
* In v1.8.1, shiny.js starting throwing an error when input/output
bindings have duplicate IDs. This error is now only thrown when
`shiny::devmode(TRUE)` is enabled, so the issue is still made
discoverable through the JS error console, but avoids unnecessarily
breaking apps that happen to work with duplicate IDs. (#4019)
# shiny 1.8.1
## New features and improvements
* Added `ExtendedTask`, a new simple way to launch long-running
asynchronous tasks that are truly non-blocking. That is, even
_within_ a session, an `ExtendedTask` won't block the main thread
from flushing the reactive graph (i.e., UI updates won't be
blocked). `ExtendedTask` pairs nicely with new
`bslib::input_task_button()` and `bslib::bind_task_button()`
functions, which help give user feedback and prevent extra button
clicks. (#3958)
* Added a JavaScript error dialog, reporting errors that previously
were only discoverable by opening the browser's devtools open. Since
this dialog is mainly useful for debugging and development, it must
be enabled with `shiny::devmode()`. (#3931)
* `runExamples()` now uses the `{bslib}` package to generate a better
looking result. It also gains a `package` argument so that other
packages can leverage this same function to run Shiny app
examples. For more, see `?runExamples`. (#3963, #4005)
* Added `onUnhandledError()` to register a function that will be
called when an unhandled error occurs in a Shiny app. Note that this
handler doesn't stop the error or prevent the session from closing,
but it can be used to log the error or to clean up session-specific
resources. (thanks @JohnCoene, #3993)
## Changes
* `renderDataTable()`/`dataTableOutput()` are officially deprecated in
favor of [their `{DT}`
equivalents](https://rstudio.github.io/DT/shiny.html). Migrating to
`{DT}`, in most cases, just requires changing `renderDataTable()` to
`DT::renderDT()` and `dataTableOutput()` to `DT::DTOutput()`. Also,
to promote migration, when a recent version of `{DT}` is available,
`renderDataTable()`/`dataTableOutput()` now automatically use their
`{DT}` equivalent (and provide a message that they are doing so). If
this happens to degrade an existing app, set
`options(shiny.legacy.datatable = TRUE)` to get the old (i.e.,
non-`{DT}`) implementation. (#3998)
* Both `conditionalPanel()` and `uiOutput()` are now styled with
`display: contents` by default in Shiny apps that use Bootstrap
5. This means that the elements they contain are positioned as if
they were direct children of the parent container holding the
`conditionalPanel()` or `uiOutput()`. This is probably what most
users intend when they use these functions, but it may break apps
that applied styles directly to the container elements created by
these two functions. In that case, you may include CSS rules to set
`display: block` for the `.shiny-panel-conditional` or
`.shiny-html-output` classes. (#3957, #3960)
## Bug fixes
* Notifications are now constrained to the width of the viewport for
window widths smaller the default notification panel size. (#3949)
* Fixed #2392: `downloadButton()` now visibly returns its HTML tag so
that it renders correctly in R Markdown and Quarto output. (Thanks
to @fennovj, #2672)
* Calling `updateSelectizeInput()` with `choices` and `selected` now
clears the current selection before updating the choices and
selected value. (#3967)
* Loading a Shiny app in a package-like directory will no longer warn
if autoloading is disabled by the presence of an
`R/_disable_autoload.R` file. (Thanks to @krlmlr and @tanho63,
#3513)
# shiny 1.8.0
## Breaking changes
* Closed #3899: The JS function `Shiny.bindAll()` is now
asynchronous. This change is driven by the recent push toward making
dynamic UI rendering asynchronous, which is necessary for
[shinylive](https://shinylive.io/r) (and should've happened when it
was first introduced in Shiny v1.7.5). The vast majority of existing
`Shiny.bindAll()` uses should continue to work as before, but some
cases may break if downstream code relies on it being synchronous
(i.e., blocking the main thread). In this case, consider placing any
downstream code in a `.then()` callback (or `await` the result in a
`async` function). (#3929) * Since `renderContent()` calls
`bindAll()` (after it inserts content), it now returns a
`Promise<void>` instead of `void`, which can be useful if downstream
code needs to wait for the binding to complete.
## New features and improvements
* Updated `selectizeInput()`'s selectize.js dependency from v0.12.4 to
v0.15.2. In addition to many bug fixes and improvements, this update
also adds several new [plugin
options](https://selectize.dev/docs/demos/plugins). (#3875)
* Shiny's CSS styling (for things like `showNotification()`,
`withProgress()`, `inputPanel()`, etc.), has been updated with
`{bslib}`'s upcoming CSS-only dark mode feature in mind. (#3882,
#3914)
* Default styles for `showNotification()` were tweaked slightly to
improve accessibility, sizing, and padding. (#3913)
* Shiny inputs and `{htmlwidgets}` are no longer treated as draggable
inside of `absolutePanel()`/`fixedPanel()` with `draggable =
TRUE`. As a result, interactions like zooming and panning now work
as expected with widgets like `{plotly}` and `{leaflet}` when they
appear in a draggable panel. (#3752, #3933)
* For `InputBinding`s, the `.receiveMessage()` method can now be
asynchronous or synchronous (previously it could only be
synchronous). (#3930)
## Bug fixes
* `fileInput()` no longer has unwanted round corners applied to the
`buttonLabel`. (#3879)
* Fixed #3898: `wrapFunctionLabel()` no longer throws an error if the
`name` is longer than 10000 bytes. (#3903)
# shiny 1.7.5.1
## Bug fixes
* On r-devel (R > 4.3.1), `isTruthy(NULL)` now returns `FALSE` (as it does \
with older versions of R). (#3906)
# shiny 1.7.5
## Possibly breaking changes
* For `reactiveValues()` objects, whenever the `$names()` or
`$values()` methods are called, the keys are now returned in the
order that they were inserted. (#3774)
* The value provided to `options(shiny.json.digits)` is now
interpreted as number of _digits after the decimal_ instead of
_significant digits_. To treat the value as significant digits, wrap
it in `I()` (e.g., `options(shiny.json.digits = I(4))`). This new
default behavior not only helps with reducing digits in testing
snapshots, but is also more consistent with `{jsonlite}`'s default
behavior. (#3819)
## New features and improvements
* Closed #789: Dynamic UI is now rendered asynchronously, thanks in
part to the newly exported `Shiny.renderDependenciesAsync()`,
`Shiny.renderHtmlAsync()`, and
`Shiny.renderContentAsync()`. Importantly, this means `<script>`
tags are now loaded asynchronously (the old way used
`XMLHttpRequest`, which is synchronous). In addition, `Shiny` now
manages a queue of async tasks (exposed via
`Shiny.shinyapp.taskQueue`) so that order of execution is
preserved. (#3666)
* Fixes #3840: `updateSliderInput()` now warns when attempting to set
invalid `min`, `max`, or `value` values. Sending an invalid update
message to an input no longer causes other update messages to
fail. (#3843)
* `sliderInput()` now has a larger target area for clicking or tapping on the \
slider handle or range. (#3859)
* Closed #2956: Component authors can now prevent Shiny from creating
an input binding on specific elements by adding the
`data-shiny-no-bind-input` attribute to the element. The attribute
may have any or no value; its presence will prevent binding. This
feature is primarily useful for input component authors who want to
use standard HTML input elements without causing Shiny to create an
input binding for them. Additionally, Shiny now adds custom classes
to its inputs. For example, `checkboxInput()` now has a
`shiny-input-checkbox` class. These custom classes may be utilized
in future updates to Shiny's input binding logic. (#3861)
* `Map` objects are now initialized at load time instead of build
time. This avoids potential problems that could arise from storing
`fastmap` objects into the built Shiny package. (#3775)
## Bug fixes
* Fixed #3771: Sometimes the error `ion.rangeSlider.min.js:
i.stopPropagation is not a function` would appear in the JavaScript
console. (#3772)
* Fixed #3833: When `width` is provided to `textAreaInput()`, we now
correctly set the width of the `<textarea>` element. (#3838)
|
Log message:
(www/R-shiny) Updated 1.7.1 to 1.7.4
# shiny 1.7.4
## Full changelog
### Breaking changes
* Closed #3719: Output container sizes, which are available via
[`session$clientData` and
`getCurrentOutputInfo()`](https://shiny.rstudio.com/articles/client-data.html),
no longer round to the nearest pixel (i.e., they are now more exact,
possibly fractional values). (#3720)
* Closed #3704, #3735, and #3740: `renderPlot()` no longer generates
an error (or segfault) when it executes before the output is
visible. Instead, it'll now use the graphics device's default size
for it's initial size. Relatedly, `plotPNG()` now ignores `NULL`
values for `width`/`height` (and uses the device's default
`width`/`height` instead). (#3739)
### New features and improvements
* `plotOutput()`, `imageOutput()`, and `uiOutput()` gain a `fill`
argument. If `TRUE` (the default for `plotOutput()`), the output
container is allowed to grow/shrink to fit a fill container (created
via `htmltools::bindFillRole()`) with an opinionated height. This
means `plotOutput()` will grow/shrink by default [inside of
\
`bslib::card_body_fill()`](https://rstudio.github.io/bslib/articles/cards.html#responsive-sizing),
but `imageOutput()` and `uiOutput()` will have to opt-in to similar
behavior with `fill = TRUE`. (#3715)
* Closed #3687: Updated jQuery-UI to v1.13.2. (#3697)
* Internal: Added clearer and strict TypeScript type definitions (#3644)
# shiny 1.7.3
### Bug fixes
* Shiny 1.7.0 changed the `icon(lib="fontawesome")` implementation
from a bundled copy of fontawesome, to the {fontawesome}
package. This led to issue #3688, where icons that were previously
working, were now breaking. That's because {fontawesome} 0.3.0 and
earlier did not have support for icon names used in Font Awesome 5
and earlier, only the newest icon names used in Font Awesome 6. Now,
{fontawesome} 0.4.0 has restored support for those older icon names,
and Shiny 1.7.2.1 has updated its {fontawesome} requirement to
>=0.4.0.
# shiny 1.7.2
## Full changelog
### Breaking changes
* Closed #3626: `renderPlot()` (and `plotPNG()`) now uses
`ragg::agg_png()` by default when the [`{ragg}`
package](https://github.com/r-lib/ragg) is installed. To restore the
previous behavior, set `options(shiny.useragg = FALSE)`. (#3654)
### New features and improvements
* Closed #1545: `insertUI()` now executes `<script>` tags. (#3630)
* `fileInput()` can set the `capture` attribute to facilitates user
access to a device's media capture mechanism, such as a camera, or
microphone, from within a file upload control ([W3C HTML Media
Capture](https://www.w3.org/TR/html-media-capture/)). (Thanks to
khaled-alshamaa, #3481)
* Closed tidyverse/dplyr#5552: Compatibility of dplyr 1.0 (and rlang
chained errors in general) with `req()`, `validate()`, and friends.
* Closed tidyverse/dplyr#6154: Values from an `actionButton()` had S3
classes in the incorrect order.
* Closed #3346: Default for `ref` input in `runGithub()` changed from
`"master"` to `"HEAD"`. (#3564)
* Closed #3619: In R 4.2, `splitLayout()` no longer raises warnings
about incorrect length in an `if` statement. (Thanks to @dmenne,
#3625)
### Bug fixes
* Closed #3250:`{rlang}`/`{tidyeval}` conditions (i.e., warnings and
errors) are no longer filtered from stack traces. (#3602)
* Closed #3581: Errors in throttled/debounced reactive expressions no
longer cause the session to exit. (#3624)
* Closed #3657: `throttle.ts` and the `Throttler` typescript objects
it provides now function as intended. (Thanks gto @dvg-p4, #3659)
* The auto-reload feature (`options(shiny.autoreload=TRUE)`) was not
being activated by `devmode(TRUE)`, despite a console message
asserting that it was. (#3620)
* Closed #2297: If an error occurred in parsing a value in a bookmark
query string, an error would be thrown and nothing would be
restored. Now a message is displayed and that value is
ignored. (Thanks to @daattali, #3385)
* Restored the previous behavior of automatically guessing the
`Content-Type` header for `downloadHandler` functions when no
explicit `contentType` argument is supplied. (#3393)
* Previously, updating an input value without a corresponding Input
binding element did not trigger a JavaScript `shiny:inputchanged`
event. Now, if no Input binding element is found, the
`shiny:inputchanged` event is triggered on
`window.document`. (#3584)
* Closed #2955: Input and output bindings previously attempted to use
`el['data-input-id']`, but that never worked. They now use
`el.getAttribute('data-input-id')` instead. (#3538)
### Minor improvements
* When taking a test snapshot, the sort order of the json keys of the
`input`, `output`, and `export` fields is currently sorted using the
locale of the machine. This can lead to inconsistent test snapshot
results. To opt-in to a consistent ordering of snapshot fields with
`{shinytest}`, please set the global option
`options(shiny.snapshotsortc = TRUE)`. `{shinytest2}` users do not
need to set this value. (#3515)
* Closed rstudio/shinytest2#222: When restoring a context (i.e.,
bookmarking) from a URL, Shiny now better handles a trailing `=`
after `_inputs_` and `_values_`. (#3648)
* Shiny's internal HTML dependencies are now mounted dynamically
instead of statically. (#3537)
* HTML dependencies that are sent to dynamic UI now have better type
checking, and no longer require a `dep.src.href` field. (#3537)
|
Log message:
(www/R-shiny) Updated 1.6.0 to 1.7.1
shiny 1.7.1
===========
## Bug Fixes
* Closed #3516: Fix regression in repeated calls to `appendTab()` when
`navbarMenu()` is already present within a
`tabsetPanel()`/`navbarPage()`. (#3518)
* Re-arranged conditions for testthat 1.0.0 compatibility. (#3512)
shiny 1.7.0
===========
## Full changelog
### Breaking changes
* The `format` and `locale` arguments to `sliderInput()` have been
removed. They have been deprecated since 0.10.2.2 (released on
2014-12-08).
* Closed #3403: `insertTab()`'s `position` parameter now defaults to
`"after"` instead of `"before"`. This has the benefit of \
allowing us
to fix a bug in positioning when `target = NULL`, but has the
drawback of changing the default behavior when `target` is not
`NULL`. (#3404)
### New features and improvements
* Bootstrap 5 support. (#3410 and rstudio/bslib#304)
* As explained
[here](https://rstudio.github.io/bslib/index.html#basic-usage), to
opt-in to Bootstrap 5, provide `bslib::bs_theme(version = 5)` to a
page layout function with a `theme` argument (e.g., `fluidPage()`,
`navbarPage()`, etc).
* 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)
* Closed #3397: `renderPlot()` new uses `ggplot2::get_alt_text()` to inform an \
`alt` text default (for `{ggplot2}` plots). (#3398)
* `modalDialog()` gains support for `size = "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`](https://github.com/rstudio/shiny/tree/master/srcts). (#3296)
* Switched from `digest::digest()` to `rlang::hash()` for hashing. (#3264)
* Switched from internal `Stack` class to `fastmap::faststack()`, and
used `fastmap::fastqueue()`. (#3176)
* Some long-deprecated functions and function parameters were
removed. (#3137)
### Bug fixes
* Closed #3345: Shiny now correctly renders
`htmltools::htmlDependency()`(s) with a `list()` of `script`
attributes when used in a dynamic UI context. This fairly new
`htmlDependency()` feature was added in `{htmltools}`
v0.5.1. (#3395)
* Fixed [#2666](https://github.com/rstudio/shiny/issues/2666) and
[#2670](https://github.com/rstudio/shiny/issues/2670):
`nearPoints()` and `brushedPoints()` weren't properly account for
missing values (#2666 was introduced in
v1.4.0). ([#2668](https://github.com/rstudio/shiny/pull/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 for `devmode()` but was never exported. See
`?devmode()` for more details on how to register Shiny Developer
options using `register_devmode_option()`. (#3364)
* Closed #3484: In the RStudio IDE on Mac 11.5, selected checkboxes
and radio buttons were not visible. (#3485)
### Library updates
* Closed #3286: Updated to Font-Awesome 5.15.2. (#3288)
* Updated to jQuery 3.6.0. (#3311)
|