Releases: holoviz/panel
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)
Documentation
Version 1.6.1
This patch release primarily addresses issues running Panel behind a reverse proxy, improves the developer experience of working with custom ESM bundles and adds compatibility for Plotly 6.0. Congratulations to @fabiovincenzi and @pankajp for their first contribution fixing inlining of stylesheets. Many thanks to to our returning contributors @ceball, @Azaya89 and @Coderambling as well as our core developer team including @ahuang11, @maximlt, @hoxbro and @philippjfr for contributing to this release.
Enhancements
- Add
ChatFeed.scroll_to
method (#7671) - Implement watch feature for
panel compile
command (#7683) - Allow ESM components to load CSS bundles (#7685, #7691)
- Generalize
ReactiveESM.select
so children are automatically detected (#7699)
Bug fixes
- Ensure errors in sync periodic callbacks are logged (#7665)
- Reset
visible_range
whenFeed.objects
are updated (#7673) - Ensure ESM bundles correctly resolve component implementations (#7684, #7698)
- Fix default avatar in send/stream (#7677)
- Ensure index redirects are relative to fix index page behind a reverse proxy (#7704)
- Ensure root_url is correctly determined during auth (#7680)
- Ensure the modal is on top in EditableTemplate (#7710)
- Ensure Tabulator selection is recalculated after filtering (#7712)
- Fix custom login endpoints (#7714)
- Ensure type checkers can correctly infer extension argument types (#7709)
- Ensure custom components and extensions respect resource mode in notebooks (#7701, #7716)
- Ensure in process events are cleaned up after they are applied (#7717)
Compatibility
- Compatibility with Plotly 6.0 (#7681, #7682)
- Bump pyodide version to 0.27.2 and PyScript version to 2025.2.1 (#7718)
Docs
Version 1.6.0
This release adds a number of features including a standalone Modal
component, the ability to infer widget parameters from values, and the ability to easily edit a ChatMessage
. Additionally it includes a number of enhancements for styling, particularly in dark themes, other enhancements for chat components and a large number of bug fixes. Many thanks for our returning contributor @kdheepak, our new contributors @pgierz, @jonatantreijs and @etihwo, and of course the whole maintainer team including @ahuang11, @MarcSkovMadsen @hoxbro, @maximlt and @philippjfr.
Features
- Add PAM authentication support (#6861)
- Add
Widget.from_values
method (#7033) - Add a standalone
Modal
layout (#7083) - Introduces
ChatMessage
andChatFeed
edit functionality (#7559)
Enhancements
- Allow
ChatFeed.callback_exception
to accept a callable and 'traceback' (alias for verbose) (#7558) - Fix Accordion active_header_background in dark theme (#7576)
- Increase default max character limit on
ChatAreaInput
(#7562) - Fix chat message alignment issues (#7563)
- Make
Markdown
pane line breaking behavior configurable (#7582) - Improve styling of chat components in dark theme (#7601, #7602)
- Automatically scroll when streaming to
ChatFeed
andChatStep
(#7608) - Add support for remote filesystems on
FileSelector
(#7618) - Add support for
FigureWidget
events onPlotly
pane (#7654, #7662)
Bug fixes
- Fix Azure Oauth issues (#7587)
- Correctly display file not found paths in
panel convert
(#7589) - Fix
Tabulator.patch
when table is filtered (#7621) - Ensure
esbuild
can be detected on windows duringpanel compile
(#7625) - Fix various issues styling
Tabulator
when it is wider than the viewport (#7626) - Fix resource loading when serving Panel app on nested FastAPI endpoint (#7627)
- Fix
panel oauth-secret
command (#7628) - Ensure fonts are applied to
NotificationArea
(#7633) - Handle session context where session is not defined (#7634)
- Ensure
CompositeWidget
can be populated in callback (#7636) - Correctly identify skimage and PIL packages when converting to pyodide (#7637)
- Ensure we use CDN resources in pyodide (#7638)
- Consistently apply sizing_mode to
FileSelector
components (#7640) - Ensure tasks are cancelled correctly (#7641)
- Ensure
NotificationArea
stylesheet loads in panel-preview (#7643) - Ensure
NestedSelect
updates whenoptions
are changed (#7649) - Ensure
ButtonIcon
displays an icon during click (#7650)
Compatibility and Updates
- Update
panel convert
to latest versions of pyodide and pyscript (#7584) - Bump plotly.js version to 2.35.3 (#7657)
- Bump tabulator.js version to 6.3.1 (#7656)
Documentation
Version 1.5.5
This release fixes a regression causing .node_modules to be bundled into our released wheel and introduces a number of bug fixes and enhancements. Many thanks to @mayonnaisecolouredbenz7, @pmeier, @Italirz, @Coderambling and our maintainer team @MarcSkovMadsen, @hoxbro, @ahuang11, @thuydotm, @maximlt and @philippjfr.
Enhancements
- Add ability to
scroll_to
a particular object onColumn
(#7206) - Add pointer when hovering on
Markdown
copy button (#7490) - Allow streaming to
ChatStep
(#7520) - Improve
ChatMessage
repr (#7521) - Add
ChatInterface
button tooltips (#7552)
Bug fixes
- Ensure Notifications are cleaned up correctly (#4964)
- Ensure
FileDownload
label text updates correctly (#7489) - Fix
Tabulator
aggregation behavior (#7450) - Fix typing for
.servable
method (#7530) - Ensure
NestedSelect
respectsdisabled
parameter (#7533) - Ensure errors in hooks aren't masked by fallback to different signature (#7502)
- Ensure Notifications are only shown once if scheduled onload (#7504)
Documentation
Maintenance
- Enable strict type checking (#7497)
- Ensure node_modules aren't bundled into package (#7526)
- Internal cleanup of compatibility code for older param versions (#7527)
Compatibility
Version 1.5.4
This release primarily focuses on improving the ESM components including fixes for serialization of parameter values, improvements for compiling bundles, and building custom layouts. Additionally this release includes the new DatetimeSlider
, adds a copy button to codeblocks in Markdown
panes, improves responsive sizing for Plotly and starts adding better support for Polars. Many thanks and a warm welcome to our new contributor @MP-MaximilianLattka as well as our maintainer team, including @hoxbro, @thuydotm, @ahuang11, @MarcSkovMadsen and @philippjfr.
Enhancements
- Add
DatetimeSlider
widget (#7374) - Improve Jupyter preview error handling (#7434)
- Add copy button to
Markdown
codeblocks (#7451) - Various improvements for writing ESM components (#7462)
- Log authorization callback errors (#7463)
- Support polars in
pn.cache
(#7472) - Improve and document
hold
utility (#7474) - Improve how
panel compile
collects bundles (#7477)
Bug fixes
- Fix issues detecting changed property values during serialization (#7432)
- Ensure ESM compilation correctly detects file extension (#7446)
- Ensure parameter overrides are applied to ESM components (#7452)
- Ensure component
Children
parameter correctly resolves when multiple types are defined (#7454) - Fix issues using Jupyter Preview with notifications enabled (#7466)
- Ensure
HTML
/Markdown
streaming does not freeze during rapid updates (#7480) - Ensure
Plotly
sizes correctly on initial render (#7483)
Version 1.5.3
This release fixes a number of smaller regressions related to Tabulator
row_content
, ensures --dev
/--autoreload
picks up on external modules correctly and resolves OAuth guest endpoints correctly. Additionally it introduces some enhancements and bug fixes for custom components, such as adding support for loading custom components ESM Javascript bundles from the inbuilt endpoint ensuring that the bundle can be cached by the browser. Many thanks and welcome to our new contributors @chryshumble and @haojungc, our returning contributors @TheoMathurin, @aktech and @Coderambling and the core maintainer team @hoxbro, @ahuang11, @MarcSkovMadsen and @philippjfr for their contributions to this release.
Enhancements
- Sync dark mode on
browser_info
object (#7382) - Allow loading custom component ESM bundles from URL (#7410, #7412)
Bug fixes
- Address issues with
Tabulator
embed_content and optimize row expansion (#7364) - Prevent pipeline network plot from linking with other plots (#7372)
- Various fixes for custom component compilation (#7381)
- Fix OAuth guest endpoint (#7385)
- Fix
ReactiveESM._importmap
typing (#7392) - Ensure that autoreload records modules to watch before startup (#7399)
- Prevent
Tabulator
from overlapping whenmax_height
is set (#7403) - Do not mutate layout
Children
inplace (#7417) - Set
Tabulator
null formatter to empty string (#7421) - Ensure Tabulator table content does not overflow (#7425)
Compatibility
- Upgraded
Tabulator
version to 6.3 (#7419)
Documentation
Version 1.5.2
This release is a small patch release primarily addressing a regression handling selections on multi-indexed data on the Tabulator widget along with a number of documentation improvements. Many thanks to @jrycw along with @MarcSkovMadsen, @hoxbro and @philippjfr for their contributions to this release.
Bug fixes
- Fix regression handling selection on multi-indexed
Tabulator
data (#7336) - Fix Fast template theme toggle color (#7341)