All notable changes to shinywidgets will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Fixed an issue where
@render_widget
would sometimes incorrectly render a new widget without removing the old one. (#167)
- Fixed a Python 3.9 compatibility issue.
- Fixed a memory leak issue. (#167)
- Fixed an issue where widgets would sometimes fail to render in a Quarto document. (#159)
- Fixed an issue where importing shinywidgets before a ipywidget implementation can sometimes error in a Shiny Express app. (#163)
- Fixed a bug with receiving binary data on the frontend, which gets quak and mosaic-widget working with
@render_widget
. (#152)
- Fixed a bug with multiple altair outputs not working inside a
@shiny.render.ui
decorator. (#140) @render_widget
no longer errors out when giving aaltair.FacetChart
class. (#142)@render_widget
no longer fails to serializedecimal.Decimal
objects. (#138)
- Widgets no longer have a "flash" of incorrect size when first rendered. (#133)
@render_widget
now works properly withWidget
s that aren'tDOMWidget
s (i.e., widgets that aren't meant to be displayed directly). As a result, you can now use@render_widget
to gain a reference to the widget instance, and then use that reference to update the widget's value. (#133)
- The
@render_widget
decorator now attaches awidget
(andvalue
) attribute to the function it decorates. This allows for easier access to the widget instance (or value), and eliminates the need forregister_widget
(which is now soft deprecated). (#119) - Added decorators for notable packages that require coercion to the
Widget
class:@render_altair
,@render_bokeh
,@render_plotly
, and@render_pydeck
. Using these decorators (over@render_widget
) helps with typing on thewidget
attribute. (#119) - The
.properties()
method onaltair.Chart
object now works as expected again. (#129) - Reduce default plot margins on plotly graphs.
- Fixed several issues with filling layout behavior introduced in 0.2.3. (#124, #125)
reactive_read()
now throws a more informative error when attempting to read non-existing or non-trait attributes. (#120)
- Widgets now
fill
inside of afillable
container by default. For examples, see the ipyleaflet, plotly, or other output examples. If this intelligent filling isn't desirable, either provide aheight
orfillable=False
onoutput_widget()
. (#115) as_widget()
uses the newaltair.JupyterChart()
to coercealtair.Chart()
into aipywidgets.widgets.Widget
instance. (#113)
@render_widget
now builds onshiny
'srender.transformer
infrastructure, and as a result, it works more seamlessly inshiny.express
mode. (#110)- Closed #104: Officially support for Python 3.7.
- Actually export
as_widget()
(it was mistakenly not exported in 0.2.0).
- Closed #43: Fixed an issue where widgets would sometimes not load in a dynamic UI context. (#91, #93)
- Closed #14: Added a
bokeh_dependency()
function to simplify use of bokeh widgets. (#85) - Closed #89: Exported
as_widget()
, which helps to coerce objects into ipywidgets, and is especially helpful for creating ipywidget objects before passing toregister_widget()
(this way, the ipywidget can then be updated in-place and/or used as a reactive value (reactive_read()
)). (#90) - Closed #94: New
SHINYWIDGETS_CDN
andSHINYWIDGETS_CDN_ONLY
environment variables were added to more easily specify the CDN provider. Also, the default provider has changed from <unpkg.com> to <cdn.jsdelivr.net/npm> (#95) - A warning is no longer issued (by default) when the path to a local widget extension is not found. This is because, if an internet connection is available, the widget assests are still loaded via CDN. To restore the previous behavior, set the
SHINYWIDGETS_EXTENSION_WARNING
environment variable to"true"
. (#95) - Closed #86: Fixed an issue with
{ipyleaflet}
sometimes becoming unresponsive due to too many mouse move event messages being sent to the server. (#98)
- Closed #79: make shinywidgets compatible with ipywidgets 8.0.5. (#66)
-
Stopped use of
_package_dir
function fromhtmltools
. -
Miscellaneous typing fixes and updates.
- Fixed installation problems on Python 3.7. (#68)
- Closed #65: get shinywidgets working with ipywidgets 8.0.3. (#66)
Initial release of shinywidgets