Recent Releases of htmlwidgets

htmlwidgets - htmlwidgets 1.6.4

This release reverts the change made in v1.6.3 (to no longer recurse into list-like objects when searching for JavaScript strings wrapped in JS()). Although that change helped prevent infinite recursion in some cases, it ultimately broke too many existing widgets that relied on the previous behavior. If you encounter infinite recursion errors ("C stack usage is too close to the limit"), the best strategy is to coerce the offending items to a character string. (#478)

- R
Published by cpsievert over 2 years ago

htmlwidgets - htmlwidgets 1.6.3

Potentially breaking changes

  • Closed #466: htmlwidgets no longer recurses into list-like objects when searching for JavaScript strings wrapped in JS(), unless the object has the class "list" or "data.frame". This stops htmlwidgets from (possibly infinitely) recursively searching objects that are not actually recursive. Widget authors who relied on the previous behavior should ensure that their widget's JS() calls are wrapped in objects that have the class "list" or "data.frame". (#467)

- R
Published by cpsievert over 2 years ago

htmlwidgets - htmlwidgets 1.6.2

  • Closed #452: as.tag.htmlwidget() now includes ... in it's function signature (for compatibility with the htmltools::as.tags generic).

- R
Published by cpsievert over 2 years ago

htmlwidgets - htmlwidgets 1.6.2

  • Closed #452: as.tag.htmlwidget() now includes ... in it's function signature (for compatibility with the htmltools::as.tags generic).

- R
Published by cpsievert over 3 years ago

htmlwidgets - htmlwidgets 1.6.1

Bug fixes

  • Closed #456: Fixed an issue where widgets were no longer being resized properly when rendered in a standalone fashion. (#458)

- R
Published by cpsievert over 3 years ago

htmlwidgets - htmlwidgets 1.6.0

htmlwidgets 1.6.0

Potentially breaking changes

  • shinyWidgetOutput() and sizingPolicy() both gain a new fill parameter. When TRUE (the default), the widget's container element is allowed to grow/shrink to fit it's parent container so long as that parent is opinionated about its height and has been marked with htmltools::bindFillRole(x, container = TRUE). (#442)
    • The primary motivation for this is to allow widgets to grow/shrink by default inside bslib::card_body_fill()
    • Widgets that aren't designed to fill their container in this way should consider setting sizingPolicy(fill = FALSE)/shinyWidgetOutput(fill = FALSE) and/or allowing users to customize these settings (i.e., add a fill argument to the customWidgetOutput() function signature).
  • shinyWidgetOutput()'s reportSize argument now defaults to TRUE. This way, calling shiny::getCurrentOutputInfo() inside a shinyRenderWidget() context will report the current height and width of the widget.

Improvements

  • Closed #433 and #440: saveWidget(selfcontained=TRUE) now uses the {rmarkdown} package to discover and call pandoc, which fixes a couple existing issues and helps "future proof" this code path from future changes to pandoc.
  • Closed #257 and #358: saveWidget(selfcontained=TRUE) now correctly prevents HTML from being interpreted as markdown. (#401)

- R
Published by cpsievert over 3 years ago

htmlwidgets - htmlwidgets 1.5.4

  • Closed #320: getDependency() no longer includes an absolute src path in its return value. (#384)
  • Fixed #408: An error type-check did not work correctly because it was missing parentheses. (#409)

- R
Published by cpsievert almost 5 years ago

htmlwidgets - v1.5.3

New features

  • Added a reportTheme argument to shinyWidgetOutput(). If TRUE, CSS styles of the widget's output container are made available to shiny::getCurrentOutputInfo(), making it possible to provide 'smart' styling defaults in a renderWidget() context. (#361)

  • shinyRenderWidget() now has a cacheHint parameter, for use with Shiny's new bindCache() function. (#391)

  • Support a new PACKAGE::widget_html.WIDGETNAME convention for defining custom widget HTML. This replaces the earlier PACKAGE::WIDGETNAME_html convention, which continues to work but may be deprecated at some point in the future. The goal for the new convention is to prevent accidentally matching functions that were never intended for this purpose. (Thanks, @thebioengineer!) (#376)

  • Export the JSEvals function, allowing other packages to support JS() in non-widget contexts.

Bug fixes

  • saveWidget() now file argument now properly handles relative paths. (#299)

  • Fixed an issue with passing named function declarations to JS() and onRender() (introduced by v1.4). (#356)

- R
Published by cpsievert over 5 years ago