Skip to content

Releases: ramnathv/htmlwidgets

htmlwidgets 1.6.4

06 Dec 15:30
7928dc2
Compare
Choose a tag to compare

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)

htmlwidgets 1.6.3

22 Nov 16:22
7711489
Compare
Choose a tag to compare

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)

htmlwidgets 1.6.2

30 Oct 19:59
cf04bf0
Compare
Choose a tag to compare
  • Closed #452: as.tag.htmlwidget() now includes ... in it's function signature (for compatibility with the htmltools::as.tags generic).

htmlwidgets 1.6.1

07 Jan 16:43
Compare
Choose a tag to compare

Bug fixes

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

htmlwidgets 1.6.0

15 Dec 15:57
Compare
Choose a tag to compare

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)

htmlwidgets 1.5.4

08 Sep 14:03
Compare
Choose a tag to compare
  • 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)

v1.5.3

10 Dec 17:44
Compare
Choose a tag to compare

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)