Releases: holoviz/panel
Version 1.8.1
Many thanks to @ATL2001 (first contribution), @Coderambling, @philippjfr, and @hoxbro for their contributions.
Enhancements
- Add configuration to disable container popup (#8200)
Bug Fixes
- Ensure Tabulator empty column has no width (#8193)
- Add UTC timezone to default time for croniter (#8199)
Documentation
- Update indicators_performance.md to fix typo (#8192)
Version 1.8.0
This release brings a wide range of new features, enhancements, and compatibility improvements. Highlights include support for JSCode
in ECharts and Tabulator, reworked WebSocket reconnection, and the ability to bundle resources into WASM apps, and numerous bug fixes to improve stability across components and templates. It also includes compatibility updates for Bokeh 3.8 and several improvements for use in Pyodide, JupyterLite, and authentication-based deployments. Many thanks to our returning contributors @dalthviz and @etihwo, a very warm welcome to our new contributors @c-meier and @flxmr and as usual many thanks to our core team including @maximlt, @hoxbro, @ahuang11, @MarcSkovMadsen and @philippjfr.
🚀 Features
- Support for inline JavaScript functions in
ECharts
andTabulator
viaJSCode
wrapper (#8162) - Add support for reconnecting to a session after network disruption (#8120)
- Add support for
AVIF
images (#8164) - Add support for bundling local resources into WASM apps (#8181)
✨ Enhancements
- Improve
.from_param()
behavior and error messages (#8047, #8079) - Add
--reuse-sessions warm
option to reduce session cold starts (#8087) - Enable event dispatch immediately after WebSocket connect (#8101)
- Improve error message display in
LiteralInput
(#8102) - Allow
hold
usage from a thread (#8113) - Improve uniformity and consistency in
Tabulator
column configuration (#8127) - Trigger
param.Event
correctly on value change (#8148) - Allow registering external
extension_cdn
for JS resources (#8175) - Allow overriding the
default_widgets
onHoloViews
pane (#8186)
🐛 Bug Fixes
- Ensure
Terminal
resizes correctly (#8109) - Bundle correct
AceEditor
version (#8111) - Remove
bokeh-sampledata
dependency from Pyodide builds (#8138) - Correct resource handling when resources are symlinked (#8143)
- Correct behavior when
FileDownload
resets cursor before reading (#8154) - Fix handling of
NaT
values (#8156) - Apply template design after rendering template (#8155)
- Prevent
select-all
checkbox from being hidden in Material theme (#8147) - Fix handling of exclusive bounds in
Param
widgets (#8165) - Fix layout of
Card
headers withrow
flex mode (#8166) - Uncap height of children in scrollable
Column
layouts (#8167) - Fix errors in
ECharts
when chart has already been destroyed (#8168) - Fix
Tabulator
filter behavior with list-based filters (#8169) - Allow
Card
to overflow container (#8170) - Fix
pyodide
model syncing (#8174)
⚠️ Deprecations
- Removed
panel.io.model.hold
(was moved topanel.io.document.hold
in 1.6.0) (#8188) - Deprecated
panel.chat.langchain.PanelCallbackHandler
(to be removed in 1.9.0) (#8188)
📦 Compatibility & Infrastructure
- Update component versions (#7447)
DeckGL
version from 9.0.20 to 9.1.14ECharts
version from 5.6.0 to 6.0.0KaTeX
version from 0.6.0 to 0.16.22Perspective
version from 3.6.1 to 3.8.0Plotly
version from 3.0.1 to 3.1.0Vega
version from 5 to 6.1.2 and vega-lite dependency from 5 to 6.3.0Vizzu
version from 0.15 to 0.17.1
- Drop support for Bokeh 3.5 and 3.6 (#8116)
- Full compatibility with Bokeh 3.8 (#8160)
📚 Documentation
Version 1.7.5
This patch release brings a number of important bug fixes and refinements, including improved modal behavior, Param integration fixes for ESM, and security hardening of authentication templates. Thanks to @harmvanderheijden, @MarcSkovMadsen, @maximlt, and @philippjfr for their contributions.
Enhancements
- Improve
.from_param()
error messages (#8047) - Add
--reuse-sessions warm
option to preload and cache apps before first use (#8087)
Security
- Fix XSS vulnerabilities in login and OAuth error templates by escaping user-controlled input (#8049)
Bug Fixes
- Fix
value_throttled
handling in Param panes (#8057) - Prevent
AutocompleteInput
from resetting whenrestrict=False
(#8056) - Fix callback cleanup for
--reuse_sessions
mode (#8052) - Reset
param.Event
state on ESM components (#8054) - Allow
Player
components to start upon initialization (#8058) - Fix modal dialog stacking and focus behavior in VanillaTemplate (#8059, #8060)
- Avoid errors in
Tabulator
when editing DataFrames withpd.NA
values (#8068) - Add guard for undefined
url
inImportedStyleSheet
(#8071) - Ensure session token payload is correctly updated when reusing sessions (#8072)
- Ensure
--reuse-sessions
caches the--index
app correctly (#8073) - Add debounce logic to
ModelChanged
events in Pyodide to improve performance and prevent redundant updates (#8077) - Ensure
Layoutable
params propagate to HoloViews plots (#8078) - Fix regression in handling
param.Action
in.from_param()
utility (#8079) - Ensure
LoadingSpinner.visible
correctly hides the component (#8081) - Ensure
JSONEditor
triggers on re-ordering of nodes (#8086) - Fix
JSONEditor
menu option to improve usability (#8085)
Documentation
- Add websocket communication how-to guide to documentation (#7952)
- Add note about increasing proxy buffer size for OAuth behind reverse proxies (#8084)
Maintenance
- Fix gallery deployment automation (#8055)
Version 1.7.4
This patch release introduces small but impactful security, compatibility, and usability improvements. It enhances OAuth behavior, adds byte support for the PDF pane, and fixes several rendering and import issues across backends and components. Thanks to @ahuang11, @dalthviz, @MarcSkovMadsen, and @philippjfr for their contributions.
Enhancements
- Add support for
bytes
input to thePDF
pane (#8044) - Add
logout_url
for Auth0 to OAuth error page template (#8036)
Security
- Add authentication to files served from
--static-dirs
(#8042) - Escape error messages shown on the OAuth error page fixing XSS vulnerability (#8043)
Bug Fixes
Version 1.7.3
This patch release includes several critical stability improvements, JavaScript race condition fixes, and developer experience enhancements. It also introduces small but helpful UI features such as exception copying and better error feedback in CLI and ESM workflows. Many thanks to contributors @etihwo, @bsdz, @Coderambling, @hoxbro, @philippjfr, and @MarcSkovMadsen.
Enhancements
- Add “Copy to Clipboard” button for exceptions in the UI (#8034)
- Enable MathJax rendering if the extension is available (#8004)
- Allow setting a custom title for
Tabulator
multi-index columns (#8008) - Improve feedback in
panel compile
and reactive ESM workflows (#8012, #8010) - Ensure exceptions are printed to the command line in development mode (#8022)
Bug Fixes
- Guard against race conditions in
DeckGL
during resize (#8031) - Prevent errors when
client_comm
is undefined in some JS execution contexts (#8030, #8033) - Fix dark theme background issue in
MultiChoice
widget (#8014) - Avoid rendering Plotly components if container is not yet defined and prevent layout boomeranging (#8021)
- Ensure React
useState
callbacks are registered only once (#8023) - Support
Path
objects in stylesheet definition (#8026)
Version 1.7.2
This patch release includes a number of important bug fixes, optimizations, and compatibility updates, particularly for React and ESM-based components. It also includes enhancements to the Tabulator table and more robust support for Audio/Video panes. Many thanks to @etihwo for his continued contributions and the maintainer team @hoxbro and @philippjfr.
Enhancements
- Support for passing
bytes
andBytesIO
objects toAudio
andVideo
panes (#7963) - Add header tooltips to
Tabulator
(#7988) - Optimize layout calculations for ESM components (#7989)
- Allow nested
ReactComponent
s to bypass Shadow DOM (#7991) - Support
--ico-path
CLI option to support explicit .ico path specification (#7992) - Loosen parameter type for
ReactiveExpr.widget_layout
(#7964) - Automatically unblock Comm on WebSocket re-connect (#7986)
Bug Fixes
- Fix
Tabulator
fast design and fix styling issues (#7956) - Keep reference state consistent after Pyodide syncing (#7966)
- Ensure correct model is used when determining if a link is set up (#7968)
- Do not dispatch events on hold/unhold when the document is uninitialized (#7972)
- Ensure theming does not error on
PyComponent
(#7975) - Prevent stylesheet patch from dispatching during initial load (#7978)
- Fix caching issue for ESM render modules (#7990)
- Correct initialization behavior of
ReactComponent
(#7996) - Fix threading race condition when applying consecutive updates to
Param
widgets (#8003)
Version 1.7.1
This patch release adds a new option to disable FileDropper
previews and fixes a regression when updating Column
children in Bokeh<3.7. Additionally, it includes a number of documentation improvements.
Many thanks to our returning contributors @dalthviz, @emmanuel-ferdman, @MarcSkovMadsen, and @hoxbro
Enhancements
- Add option to disable FileDropper previews (#7944)
--index-titles
help string typo fix and don't calltitle
on user input (#7935)
Bug fixes
Documentation
- Fix image links in Azure documentation (#7938)
Version 1.7.0
This minor release is not as jam-packed as previous minor releases but adds a number of quality of life improvements, bug fixes and features along with version and compatibility updates for a number of JS dependencies. Many thanks to some of our more frequent contributors @dalthviz, @etihwo, our new contributor @emmanuel-ferdman and our maintainers @hoxbro, @MarcSkovMadsen and @philippjfr.
Features
- Add a secondary (right) sidebar to the
FastListTemplate
(#7774) - Add
Date(Time)Picker.allowInput
option (#7886) - Add
Markdown.disable_anchors
option (#7902) - Add
config.cache_path
variable to configure default location for diskcache (#7903) - Support custom cookie path (#7911)
- Allow customizing index page titles with
--index-titles
CLI option (#7916) - Add
Image.target
option to configure where to openlink_url
(#7924)
Enhancements
- Display parameter name in error messages (#7879)
- Improve Material design styling (#7891, #7917)
- Improve logic for computing Tabulator page size automatically (#7915)
Versions and Compatibility
- Bump Ace
CodeEditor
version 1.40.1 and add themes (#7874) - Bump pyodide version to 0.27.5 (#7905)
- Bump
ECharts
version to 5.6.0 (#7905) - Bump
JSONEditor
version to 10.2.0 (#7905) - Bump
Perspective
version to 3.6.1 (#7919)
Bug fixes
- Deduplicate components before compiling (#7887)
- Avoid boomeranging of events after
hold
is applied (#7892) - Handle .ico image base64 mime-type correctly (#7894)
- Ensure
FileDropper
height is not limited (#7898) - Ensure correct stylesheet cache is used by theme hooks when component is shared between sessions (#7896)
- Reset
BaseTemplate._documents
correctly on autoreload (#7897) - Ensure widget CSS is loaded correctly when server path is prefixed (#7900)
- Correct display
Tabulator
with multi index and multi index column (#7907) - Ensure stretch and scale sizing_mode does not cause overflow in container (#7928)
Documentation
Version 1.6.3
This release introduces a number of performance improvements related to rendering of children in layouts and ESM components, a number of bug fixes and a number of documentation improvements. We are pleased to welcome @malemburg as a new contributor and want to thank @s-alexey, @Coderambling, @etihwo and our core maintainer team including @hoxbro, @ahuang11, @MarcSkovMadsen and @philippjfr for their contributions to this release.
Enhancements
- Implement smarter
Column
child rendering #7846 - Optimize
ReactComponent
child renders #7828 - Add
indent
andsoft_tabs
options toCodeEditor
#7831 - Allow creating
Param.widget
without instantiating object, speeding upWidget.from_param
#7867
Bug fixes
- Fix handling of React based
AnyWidgetComponent
types #7820 - Cache ESM render modules #7827
- Check for
None
inselect
function forPyComponent
#7837 - Fix for
AttributeError
inauth.py:CodeChallenge
OAuth login #7844 - Fix error when
old_objects
is empty in_get_objects()
#7842 - Ensure
ReactiveESM
renders elements #7853 - Ensure ESM shared resources are watched properly #7856
- Fix Material design
Tabulator
header color #7855 - Ensure current view and selection lookups on
Tabulator
handleNone
case #7858 - Ensure
Modal
events are targeted to correct model #7860 - Ensure
ChatFeed
has inherent height #7861 - Ensure
Markdown
code blocks are always left aligned #7862 - Gracefully handle
ECharts
delayed rendering #7869
Documentation
Version 1.6.2
This release primarily introduces improvements for ESM and React components and refactoring to make it easy to subclass existing components. This is an effort to make it easier to provide alternative implementations for Panel components. Additionally this release includes compatibility for Bokeh 3.7, bug fixes for TextEditor
and a variety of other bug fixes. Many thanks to our new contributor @s-alexey, our returning contributors @Coderambling and the core maintainer team including @hoxbro, @ahuang11 and @philippjfr.
Enhancements
- Make it easier to subclass components (#7730, #7744, #7785)
- Allow
model.useState
inReactComponent
s to reference nested parameter values (#7743) - Allow providing shared ESM modules (#7757)
- Allow defining root node for
ReactComponent
(#7787) - Improve pretty printing in
HoloViews
pane (#7775) - Allow serializing joint dict/Parameterized types on
DataModel
(#7789) - Improve ListLike and NamedListLike to better match Python list behavior (#7794)
- Improve rendering of ReactComponent children (#7802)
- Allow overriding Param input widgets (#7813)
Performance
Bug fixes
- Correctly handle empty source files (#7732)
- Add extra guard around
get_ipython
check (#7734) - Ensure
ReactComponent
children are sized correctly (#7741) - Ensure
ChatStep
does not toggle from failed to success (#7742) - Ensure
Feed
and scrollable layout children heights are not fixed (#7747) - Declare more
Child
parameters on various components (#7749) - Do not sync parameters mapped to None on on ESM components (#7750, #7753)
- Always include esm.css for ESM components (#7752)
- Do not duplicate stylesheets (d133eb9)
- Ensure
ChatStep
text does not overflow container (#7770) - Refactor
ChatFeed
post hook ensuring it processes correct message (#7722) - Ensure hooks are applied to root components with
Fast
design (#7777) - Ensure resource mode is set in notebooks (#7776)
- Clear state cookie if OAuth access token expired and can't be refreshed (#7780)
- Fix formatting in
TextEditor
widget (#7739) - Use Ace version with no require.js dependency (#7781)
- Ensure multiple sequential notifications render (#7790)
- Style correct column when frozen
Tabulator
column is an index (#7792) - Ensure IconButton tooltip timer is cleared on multiple mouseenter events (#7798)
- Ensure pre-processors are applied to ESM children (#7799)
- Ensure outputs are laid out correctly after initial render of
EditableTemplate
(#7816) - Fix regressiong related to providing Path to ESM component stylesheets (#7809)
Compatibility
- Compatibility with Bokeh 3.7 (#7724, #7815)
- Update
TextEditor
widget to Quill.js 2.0.2 (#7739) - Update
Plotly
pane to Plotly.js 3.0.1 (#7731)