./math/R-shiny, Web application framework for R

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 1.8.1.1, Package name: R-shiny-1.8.1.1, Maintainer: pkgsrc-users

Makes it incredibly easy to build interactive web applications with R.
Automatic "reactive" binding between inputs and outputs and extensive
prebuilt widgets make it possible to build beautiful, responsive, and
powerful applications with minimal effort.


Required to run:
[math/R] [mail/R-mime] [security/R-digest] [devel/R-crayon] [textproc/R-jsonlite] [devel/R-rlang] [math/R-xtable] [lang/R-sourcetools] [textproc/R-htmltools] [sysutils/R-later] [parallel/R-promises] [www/R-httpuv]

Required to build:
[pkgtools/cwrappers]

Master sites: (Expand)


Version history: (Expand)


CVS history: (Expand)


   2024-06-08 15:02:38 by Makoto Fujiwara | Files touched by this commit (2) | Package updated
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)
   2023-06-04 04:10:23 by Makoto Fujiwara | Files touched by this commit (2) | Package updated
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)
   2022-04-30 03:49:59 by Makoto Fujiwara | Files touched by this commit (2) | Package updated
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)
   2021-10-26 13:31:15 by Nia Alarie | Files touched by this commit (1030)
Log message:
www: Replace RMD160 checksums with BLAKE2s checksums

All checksums have been double-checked against existing RMD160 and
SHA512 hashes

Not committed (merge conflicts):
www/nghttp2/distinfo

Unfetchable distfiles (almost certainly fetched conditionally...):
./www/nginx-devel/distinfo array-var-nginx-module-0.05.tar.gz
./www/nginx-devel/distinfo echo-nginx-module-0.62.tar.gz
./www/nginx-devel/distinfo encrypted-session-nginx-module-0.08.tar.gz
./www/nginx-devel/distinfo form-input-nginx-module-0.12.tar.gz
./www/nginx-devel/distinfo headers-more-nginx-module-0.33.tar.gz
./www/nginx-devel/distinfo lua-nginx-module-0.10.19.tar.gz
./www/nginx-devel/distinfo naxsi-1.3.tar.gz
./www/nginx-devel/distinfo nginx-dav-ext-module-3.0.0.tar.gz
./www/nginx-devel/distinfo nginx-rtmp-module-1.2.2.tar.gz
./www/nginx-devel/distinfo nginx_http_push_module-1.2.10.tar.gz
./www/nginx-devel/distinfo ngx_cache_purge-2.5.1.tar.gz
./www/nginx-devel/distinfo ngx_devel_kit-0.3.1.tar.gz
./www/nginx-devel/distinfo ngx_http_geoip2_module-3.3.tar.gz
./www/nginx-devel/distinfo njs-0.5.0.tar.gz
./www/nginx-devel/distinfo set-misc-nginx-module-0.32.tar.gz
./www/nginx/distinfo array-var-nginx-module-0.05.tar.gz
./www/nginx/distinfo echo-nginx-module-0.62.tar.gz
./www/nginx/distinfo encrypted-session-nginx-module-0.08.tar.gz
./www/nginx/distinfo form-input-nginx-module-0.12.tar.gz
./www/nginx/distinfo headers-more-nginx-module-0.33.tar.gz
./www/nginx/distinfo lua-nginx-module-0.10.19.tar.gz
./www/nginx/distinfo naxsi-1.3.tar.gz
./www/nginx/distinfo nginx-dav-ext-module-3.0.0.tar.gz
./www/nginx/distinfo nginx-rtmp-module-1.2.2.tar.gz
./www/nginx/distinfo nginx_http_push_module-1.2.10.tar.gz
./www/nginx/distinfo ngx_cache_purge-2.5.1.tar.gz
./www/nginx/distinfo ngx_devel_kit-0.3.1.tar.gz
./www/nginx/distinfo ngx_http_geoip2_module-3.3.tar.gz
./www/nginx/distinfo njs-0.5.0.tar.gz
./www/nginx/distinfo set-misc-nginx-module-0.32.tar.gz
   2021-10-07 17:09:00 by Nia Alarie | Files touched by this commit (1033)
Log message:
www: Remove SHA1 hashes for distfiles
   2021-06-09 16:11:07 by Makoto Fujiwara | Files touched by this commit (1)
Log message:
(www/R-shiny) Add three DEPENDS+= lines
   2021-06-08 04:00:14 by Makoto Fujiwara | Files touched by this commit (1)
Log message:
(www/R-shiny) restore +R-bslib for DEPENDS. Thanks wiz@
   2021-06-07 08:36:08 by Thomas Klausner | Files touched by this commit (1)
Log message:
R-shiny: remove R-bslib, does not exist