Skip to content

Releases: holoviz/panel

Version 0.14.4

04 Mar 22:12
Compare
Choose a tag to compare

This release is a small bug fix release preceding the upcoming major release of Panel 1.0. Many thanks to the contributors to this release which include @MarcSkovMadsen, @maximlt, @hoxbro and @philippjfr.

Bugs

  • Fix Tabulator client-side string filters by not parsing them as regex (4423)
  • Fix the RGGPlot pane (#4380)
  • Fix panel examples command by ensuring examples are correctly packaged (#4484)
  • Fix event generation by considering NaNs as equal when comparing Numpy arrays (#4481)
  • Use cache from previous sessions when using to_disk (#4481)
  • Fix relative imports when running inside Jupyter Kernel (#4489)
  • Do not re-create Vega.selections object unless selections changed (#4497)

Enhancements

  • Add support for altair and vega-lite v5 (#4488)

Misc

  • Use latest react-grid from CDN (#4461)

Version 0.14.3

31 Jan 15:59
Compare
Choose a tag to compare

This release introduces a large number of bug fixes and minor enhancements. Due to the upcoming release of Panel 1.0 we have also made the unconventional decision to issue new deprecation in a micro release. Specifically the IDOM pane and Viewable.app and Viewable.pprint methods have been scheduled for deprecation. Many thanks to the contributors to this release which include @wendrul, @droumis and the core team @MarcSkovMadsen, @maximlt, @hoxbro and @philippjfr.

Bugs

Tabulator

  • Ensure streamed rows on Tabulator can be edited (#4292)
  • Ensure changes on Tabulator formatter and editor models are reflected in frontend (#4296)
  • Ensure cancelling edit does not clear cell on Tabulator (#4343)
  • Ensure inserting empty data on numeric column in Tabulator does not error (#4343)

Notebook

  • Fix issues rendering components as ipywidgets for some versions of ipykernel (#4289)
  • Add warning if custom resources could not be loaded in notebook (#4329)
  • Ensure notifications are enabled even if hv.extension has been loaded (#4330)
  • Ensure global notification object can be used inside notebook callbacks (#4331)

Type definitions

  • Fix return type of Widget.from_param (#4335)
  • Ensure type annotation allows str and PathLike objects on panel.serve (#4336)
  • Fix type annotations on panel.io.convert.convert_app(s) (#4342)

Misc

  • Ensure markdown links render correctly in template sidebar (#4222)
  • Improve .applies for ECharts and DeckGL (#4224)
  • Fix specifying custom --index with relative path (#4288)
  • Skip on_load callbacks in liveness check (#4302)
  • Ensure re-rendered FileDownload still fetches live data (#4328)
  • Fix handling of panel.cache on undecorated Parameterized method (#4332)
  • Ensure user provided hash_funcs are applied in panel.cache (#4334)
  • Fix plotly eventdata undefined val (#4355)
  • Ensure panel convert respects panel.config options (#4359)
  • Propagate options from HoloViews and Bokeh plots to enclosing Pane (#4360)
  • Propagate options from dynamic components such as ParamMethod and Interactive to enclosing layout (#4360)

Minor enhancements

  • Allow to set the log level of the Admin logger (#3495)
  • Make refresh_token available in Auth (#4227)
  • Simplify determining whether script is executed as application with pn.state.served property (#4252)
  • Add loading_indicator to global config (#4259)
  • IPython display compatibility in pyodide builds (#4270)
  • Split PanelJupyterExecutor into separate module (#4276)
  • Allow dynamic loading of javascript modules in ReactiveHTML (#4319)
  • Add Plotly.link_figure parameter (#4333)
  • Ensure CrossSelector filters apply on each keystroke (#4339)
  • Improve startup, error handling and shutdown of Jupyter kernels in jupyter_server_extension (#4364)

Compatibility and Version Updates

  • Upgrade plotly.js to 2.10.1 (#4320)
  • Upgrade to pyodide 0.22.1 in panel convert (#4334)
  • Upgrade to pyscript 2022.12.01 in panel convert (#4334)
  • Fix compatibility of Perspective pane with Numpy 1.24 (#4362)

Deprecations

  • Add deprecation warning to IDOM pane (#4293)
  • Add deprecation warning for Viewable.app and Viewable.pprint methods (#4293, #4347)

Documentation

  • Add CONTRIBUTING.md (#4262)
  • Add Gallery VideoStream example (#4047)
  • Add description of literal options to the docs for ReactiveHTML (#3803)

Version 0.14.2

16 Dec 17:43
Compare
Choose a tag to compare

This release primarily focuses on bug fixes. In particular it resolves various issues with support for rendering ipywidgets (particularly in ipywidgets>=8.0) and also fixes a number of issues with the Jupyter Server previews. Many thanks for @govinda18, @joelostblom, @banesullivan, @xeldnahcram, @geronimogoemon, @minasouliman, @peterfpeterson, @jlstevens and the core maintainers @maximlt, @hoxbro, @MarcSkovMadsen and @philippjfr for their contributions to this release.

Enhancements

  • Add support for Tqdm.process_map (#4093)
  • Support non-vtkPolyData types in vtk synchronizer (#4124)
  • Allow invoking convert functions from pyodide (#4135)
  • Support step format in date sliders (#4152)
  • Add a Reacton component to simplify rendering (#4190)

Bugs

  • Ensure Jupyter server extension serves resources, extensions and paths correctly (#4083, #4133, #4202)
  • Ensure IPyWidget comm does not break when new widget is rendered (#4091)
  • Improving detection of comms in VSCode and Google Colab (#4115)
  • Ensure .js mimetype is served correctly on Windows (#4118)
  • Ensure unhiding Tabulator columns renders cells correctly (#4119)
  • Ensure embedded Slider widgets initialize with correct default (#4121)
  • Handle missing event loop in thread gracefully (#4123)
  • Ensure Matplotlib pane handles explicit width/height settings correctly (#4128)
  • Allow Viewer to render servable but non-viewable objects (#4131)
  • Fix regression in tracking sessions in admin interface (#4132)
  • Ensure Tabs headers do not scroll unncessarily (#4146)
  • Ensure Location model reports as idle (#4159)
  • Fix auth error template rendering (#4162)
  • Fix issues with value on EditableSlider when it is outside fixed_start / fixed_end range (#4169)
  • Ensure ipywidgets events are handled the same way as regular events (#4171)
  • Don't raise TypeError for class which contains __panel__ (#4174)
  • Do not dispatch events if bokeh Document is set to hold events (#4178)
  • Execute onload callbacks immediately in pyodide app (#4191)
  • Improve IPyWidget kernel handling in server contexts (#4195)
  • Fix rendering of IPyWidget with child views in the notebook (#4197)

Docs

  • Add JupyterLite build and instructions (#4122)
  • Document deployment to Hugging Face Spaces (#4143)

Version 0.14.1

01 Nov 09:58
Compare
Choose a tag to compare

This release primarily addresses regressions introduced in 0.14.0 and various long standing bugs. Many thanks to external contributors @liu-kan and @KedoKudo and the maintainers @hoxbro@maximlt and @philippjfr for contributing a number of fixes.

### Minor enhancements

- Improve support for requests in pyodide (#3973)
- Add option to clear value of DatetimePicker (#3990)
- Add support for hashing dates in pn.cache (#4004)
- Silence EMPTY_LAYOUT warnings (#4056)

### Compatibility

- Fix Jupyterlite and latest PyScript compatibility (#4040)

### Bugs

#### Webassembly conversion

- Correctly handle resource mode in when converting to WebAssembly (#3967)

### Jupyter and Server

- Correctly handle future exceptions on threads (#3977)
- Fix panel serve index template (#3980)
- Do not error if curdoc has been destroyed (#3994)
- Ensure extensions loaded in jupyter kernel are served by StaticHandler (#4000)
- Various fixes for OAuth handling with pn.serve (#4006)
- Fix bug in on_load callback exception handling (#4007)
- Ensure periodic callbacks are only started on main thread (#4011)
- Ensure jupyter server extension handles explicit root_dir (#4029)
- Ensure futures are correctly awaited when executed on thread (#4031)

#### Components

- Ensure Tabulator handles filtering on edited values correctly if show_index=False (#3988#4016)
- Ensure Tabulator declares numeric sorter for numeric dtypes (#3999)
- Fix regression initializing DiscreteSlider with non-integer value (#4009)
- Ensure that template.config.raw_css is correctly applied (#4018)
- Fix handling MenuButton clicks when split=True (#4021)
- Ensure styling on Tabulator with empty DataFrame does not error (#4028)
- Allow changing level on Debugger widget (#4057

Version 0.14.0

05 Oct 15:20
Compare
Choose a tag to compare

This release focuses on three main themes:

  • Support for running Panel apps entirely in the browser using WebAssembly (via Pyodide and PyScript)
  • Improvements in the app-user experience by making it easier to build responsive and performant applications
  • Improvements in the developer experience through static typing and docstrings.

Many, many thanks to everyone who filed issues or contributed to this release. In particular we would like to thank @janimo, @xavArtley, @thuydotm, @jmosbacher, @dmarx, @2WoLpH, @ipopa144, @sdc50 for contributions and @philippjfr, @hoxbro, @maximlt, and @MarcSkovMadsen for ongoing maintenance and development.

Features

  • Add support for converting Panel apps to pyscript/pyodide (#3817, #3830, #3851, #3856, #3857, #3858, #3860, #3861, #3863, #3864, #3868, #3878)
  • Manage our own CDN to improve performance and reliability for delivering JS payloads (#3867, #3870)
  • Add ability to defer_load of components (#3882)
  • Add pn.widget helper function (#1826, #3589)
  • Add config.exception_handler to easily capture, log and notify users about errors (#3893)
  • Implement pn.cache function for memoization support (#2411)
  • Rewrite server extension to run Panel applications in kernels so that previews run in the same environment as the deployed app (#3763)
  • Add ability to define authorization callback (#3777)
  • Support memray profiler (#3509)
  • Add liveness endpoint (#3832)
  • Add ability to configure exception handler (#3896)

Enhancements

  • Ensure OAuth redirects to requested app and retains query arguments (#3555)
  • Add extension entry point (#3738)
  • Update Admin Logs page to use Tabulator (#3694)
  • Ensure location.unsync unsets query params (#3806)
  • Allow None value on numeric sliders and LiteralInput (#3174)
  • Allow serving admin panel with pn.serve (#3798)
  • Improve ReactiveHTML loop support and validation (#3813)
  • Support declaring Perspective.plugin_config pane (#3814)
  • Do not flicker busy indicator during --autoreload check (#3804)
  • Improve robustness of state.curdoc in threaded and async contexts (#3776, #3810, #3834)
  • Support datetime bounds for DatetimePicker and DatetimeRangePicker (#3788)
  • Allow setting the Oauth provider using environment variables (#3698)
  • Implement Player.value_throttled (#3756)
  • Ensure that URL query parameters are preserved during OAuth (#3656)
  • Improve Markdown code syntax highlighting (#3758)
  • Ensure components do not re-render if background or loading parameters change (#3599)
  • Add ability to define admin dashboard plugins (#3668)
  • Do not calculate embed state for disabled widgets (#3757)
  • Add hard bounds to editable sliders (#3739)
  • Add bundling of shared resources (#3894)
  • Add Tabulator as default param.DataFrame widget (#3912)

Documentation

Compatibility & Version updates

  • Support ipywidgets>=8.0 (#3782)
  • Bump jsoneditor package (#3838)
  • Upgrade to Tabulator 5.3.2 (#3784)
  • Improve Django compatibility (#3843, #3835)
  • Remove all usage of deprecated Pane

Bugs

Server

  • Ensure closed websocket does not cause errors
  • Handle session and websocket close cleanly (#3769)
  • Fix prefix handling for admin page (#3809)
  • Support admin dashboard in multi-process deployments (#3812)
  • Improve document cleanup when not invoked using server_destroy (#3842)
  • Ensure pn.state.execute dispatches immediately if possible (#3859)
  • Ensure autoload.js resources are appropriately prefixed (#3873)

Notebook

  • Fix support for copying cells and creating new views in JupyterLab (#3652)
  • Ensure output renders in VSCode notebook with latest ipywidgets (#3765)
  • Resolve issues with Jupyter slowdown due to event_loop patching on Windows (#3770)
    • Ensure old comm managers do not raise errors in notebook (#3853)
    • Simplify rendering of ipywidget (#3937)

Tabulator

  • Do not re-render Tabulator on css_classes or background change (#3598)
  • Ensure expand icon updates on Tabulator.expanded change (#3703)
  • Update page Parameter when pagination is 'local' (#3704)
  • Do not apply sorters on Tabulator cell edits (#3744)
  • Ensure Tabulator.controls renders (#3768)
  • Ensure correctness of event row and selection indices in Tabulator (#3771, #3841)
  • Fix issues with frontend and backend sorters being out of sync in Tabulator (#3825, #3839)
  • Fix default values of a list header filter in Tabulator (#3826)
  • Fix the edit event with a python filter in Tabulator (#3829)
  • Disable client-side date filtering on Tabulator (#3849)
  • Support editing of pandas masked array dtypes in Tabulator (#3850)
  • Fix issues editing a cell when client-side filtering applied (#3852)
  • Do not recompute data when local pagination is enabled (#3854)
  • Don't skip filtering when the column name is undefined (#3862)

Misc

  • Fix FileInput.save (#3579)
  • Fix issues with Matplotlib.high_dpi option (#3591, #3594)
  • Ensure layout recomputes on HTML/Markdown re-rerender (#3616)
  • Allow overriding all widget parameters on Param pane (#3754)
  • Ensure DatePicker start/end are transformed when jslinked (#3759)
  • Ensure notifications can be enabled without a template ([#3820](https:...
Read more

Version 0.13.1

24 May 10:14
Compare
Choose a tag to compare

This release is primarily a bug fix release but also includes a number of enhancements. Many thanks to @hoxbro, @joelostblom, @raybellwaves, @pdrok, @tlvu, @govinda18, @MridulS and the core maintainers @MarcSkovMadsen, @maximlt and @philippjfr for contributing to this release.

Enhancements

  • Add repr to cell and edit events (#3434)
  • Improvements for pyodide handling (#3444, #3508, #3511)
  • Add support for Plotly animation frames (#3449)
  • Implement single and multi-selection in Vega pane (#3470, #3499, #3505)
  • Add typehints to help developers and users (#3476)
  • Add pn.state.execute method to run callbacks in the right context (#3550)
  • Add support for asynchronous on_edit/on_click Tabulator callbacks (#3550)
  • Add DatetimeRangeSlider widget (#3548)

Bug fixes

  • Fix pyodide array buffer conversion (#3409)
  • Allow placeholder to be updated on TextEditor (#3427)
  • Fix issues editing data in sorted columns (#3431)
  • Ensure bokeh correctly detects whether HTML/Markdown contains latex (#3438)
  • Ensure notifications work on server created with pn.serve and .show (#3445)
  • Replace slickgrid background image in custom FastTemplate CSS (#3461)
  • Ensure param.Array is synced correctly in ReactiveHTML (#3456)
  • Ensure selection on filtered Tabulator does not raise out-of-bounds error (#3462)
  • Ensure updating Tabulator does not reset scroll position (#3450)
  • Various fixes for FastTemplate CSS (#3464)
  • Ensure Tabulator on_click and on_edit events return correct row when paginated (#3410)
  • Fix broken JupyterLab preview (#3469)
  • Skip Tabulator row selection when clicking on expand button (#3474)
  • Ensure overflow in MaterialTemplate is not clipped (#3492)
  • Allow providing --index for directory style apps (#3493)
  • Ensure Tabulator expanded rows are sized correctly after re-render (#3507)
  • Make CodeHandler robust to document that has been destroyed (#3510)
  • Do not sync DataFrame widget sorters parameter with bokeh model (#3527)
  • Ensure that HoloViews callback events are not auto-dispatched (#3528)
  • Ensure non-updateable Pane can be updated inside Tabs (#3532)
  • Fix slowdown of JupyterLab on Windows (#3531)
  • Fix issue with inverted data when editing a cell in a sorted Tabulator column (#3531)
  • Ensure Tabulator has correct layout after re-render (#3536)
  • Do not log events generated by admin page on the admin page (#3539)
  • Fix Tabulator events when the original column is not a string (#3541)

Documentation

  • Adds docstrings to layouts (#3417)
  • Show how to filter categorical and temporal data from Altair/VegaLite (#3401)
  • Document how to make a Tabulator column non-editable (#3489)

Version 0.13.0

15 Apr 15:23
a46d415
Compare
Choose a tag to compare

Blog post: https://blog.holoviz.org/panel_0.13.0.html

Features

  • Add support for scheduling global callbacks (#2661)
  • MathJax now supported in Markdown and HTML (#2847)
  • Improved support for async (e.g. in ParamMethod/ParamFunction, bind, onload etc.) (#2964, #3264, #2737)
  • Support rendering Panel objects in Jupyterlite and Pyodide (#3252, #3361, #3381)
  • Add JSONEditor widget (#1974)
  • Add quill.js based TextEditor widget (#2875)
  • Add GenericLoginHandler for custom OAuth (#2873, #2960)
  • Implement Notifications API for templates (#3093)
  • Implement built-in threading (#2597, #2632, #3081)
  • Implement profiling page for Panel (#2645, #2664, #2667, #2707, #2905)
  • Implement support for Vega events (#2592)
  • Implement ArrayInput widget (#2047)
  • Add Debugger widget (#2548)
  • Add LinearGauge indicator (#3222)
  • Add ComponentResourceHandler to server (#3284, #3289, #3303)

Enhancements

Components

  • Editable sliders name can be changed (#2678)
  • Make Plotly pane resize when window resizes (#2704)
  • Viewer objects can now be used with pn.serve (#2769)
  • VTK improvement for NaN handling (#2826)
  • Add support for configuring Vega output (#2846)
  • Add a groups parameter to Select widget (#2876)
  • Add Card.hide_header option (#2947)
  • Support bytes and pathlib.Path objects on Image (#2963, #3294)
  • Add programmatic control over Player widget (#2970, #2994)
  • Add alphabetical and custom sort to Param (#2986)
  • Add autoplay and muted to Audio and Video (#3053)
  • Add a disabled_options parameter to a custom Select widget (#3067)
  • Expose the orientation parameter of the button group widgets (#3083)
  • Add support for rendering pandas styler objects (#3152)
  • Viewer now better at working with depends functions (#3159)
  • Improve support for jinja2 loops in ReactiveHTML (#3236)
  • Add ability to require explicit load of ReactiveHTML extension (#3254)
  • Improve datetime handling of sliders (#3276)
  • Add support for multiple files in FileInput.save (#3300)
  • Add improved Tabs model that resolves sizing and hover issues (#3301, #3321, #3329)

Tabulator

  • Add support to expand rows in Tabulator (#2762, #2837, #3010, #3163)
  • Implement client-side filtering on Tabulator (#2815, #3298)
  • Add Tabulator.header_align parameter (#2861)
  • Implement Tabulator.on_edit callbacks (#2887, #3209, #2958)
  • Implement DateEditor and DatetimeEditor for Tabulator (#2899, #3008)
  • Implement Tabulator.buttons (#3111)
  • Redesign Tabulator.styles handling (#3175)
  • Set default alignment for Tabulator (#3194)
  • Bidirectionally sync Tabulator.sorters (#3217)
  • Add support for setting percentage widths on Tabulator columns (#3239)
  • Add Tabulator.on_click callback (#3245)
  • Restore Tabulator scroll position after patch (#3273)
  • Enable max row limits for Tabulator (#3306)

Notebook

  • Add basic JupyterLab theme support (#2848)
  • Support jupyter server root_dir with lab extension (#3172)
  • Avoid multiple extension execution in the notebook (#3266)
  • Added fullpath to jupyter_server_extension (#3270)

General improvements

  • Warn users if extension is not loaded before server page is rendered (#2766)
  • Sync URL location hash interactively (#2982)
  • Change accent and header background color for Fast Templates (#2984)
  • Add thread safety and TTL to pn.state.as_cached (#3198)
  • Add py.typed file to support mypy (#3055)
  • Handle authentification errors (#3096)
  • Support saving png to file-like objects (#3155)
  • Check if there are any query parameters in baseurl and adds it to location.search if possible (#3214)
  • Improve handling of --index CLI argument (#3221)
  • Fix event dispatch (#3231)
  • Add azure oauth v2.0 endpoint support (#3224)
  • Ensure gc.collect is not excessively called (#3259)
  • Added panel.reactive and panel.viewable to namespace (#3157)
  • Consistent handling of page title (#3290)

Bugs

Components

  • Fix warnings in ReactiveHTML regex (#2786)
  • Fixed UTF-8 decoding in Terminal widget (#2880)
  • Allow a param.Selector with no objects to be casted to AutocompleteInput (#2966)
  • Update ButtonGroup value when changing options (#2999)
  • Fix TQDM style color reset (#3040)
  • Fix align-items on Flexbox (#3122)
  • Fix issue serializing Spinner with negative value (#3154)
  • Fixes for jslinking HoloViews components (#3165)
  • BooleanStatus and LoadingSpinner now update when changing color (#3191)
  • Fix Widget.from_param when precedence is negative (#3199)
  • Ensure DiscreteSlider label is updated (#3278)
  • Ensure ReactiveHTML template variables only escapes exact matches (#3279)
  • Fix handling of single and empty options on DiscreteSlider (#3297)
  • Ensure Progress correctly initializes as indeterminate (#3307)
  • Always resolve DOM nodes in ReactiveHTML._scripts ([#3311](https://githu...
Read more

Version 0.12.7

27 Mar 10:57
Compare
Choose a tag to compare

The 0.12.7 release primarily fixes an incompatibility with the new jinja2 3.1.0 release. Many thanks to @maartenbreddels, @govinda18, @raybellwaves and the maintainers @maximlt and @philippjfr for contributing further fixes to this release.

Bug fixes:

  • Wrong offset when memoryview format is non-byte (#3206)
  • Support jupyter server root_dir with lab extension (#3172)

Docs:

  • add note on enabling panel widget on Jupyter Lab (#3029)
  • Remove redundant and confusing JupyterLab install instructions (#3037)

Compatibility:

  • Fix jinja2 imports (#3258)

Version 0.12.6

09 Dec 16:47
Compare
Choose a tag to compare

The 0.12.6 release fixes a major regression introduced in the last release along with a small number of pre-existing bugs.

Regressions:

  • Always load imported bokeh extensions (#2957)
  • Fix regression rendering HoloViews plotly backend (#2961)

Bug fixes:

  • Do not run Ace import on initialization (#2959)
  • Improve handling of ReactiveHTML cleanup (#2974, #2993)
  • Ensure empty Str has same height as non-empty (#2981)
  • Ensure Tabulator supports grouping on numeric columns (#2987)
  • Fix Tabulator with multi-index and pagination (#2989)
  • Allow index as column name in table widgets (#2990)
  • Ensure TemplateActions component does not have height (#2997)

Version 0.12.5

23 Nov 17:55
Compare
Choose a tag to compare

The 0.12.5 release contains a larger number of bug fixes and minor enhancements. Many thanks to @pmav99, @samuelyeewl, @xavArtley, @L8Y, @Prashant0kgp, @t-houssian, @kristw, @jlstevens and the maintainers @maximlt, @MarcSkovMadsen and @philippjfr for their contributions to this release.

Compatibility:

  • Ensure ipywidget rendering is compatible with ipykernel>6 and bokeh>2.4 (#2798)
  • Build panel.js against bokeh.js 2.4.2 (#2945)

Enhancements:

  • Add 'light' to list of button types ([#2814, #2816)
  • Make OAuth cookie expiry configurable (#2724)
  • Run onload callbacks with --warm option (#2844)
  • Improve Plotly responsive sizing behavior (#2838)
  • Adds escape parameter to DataFrame pane to enable using html markup (#2893)
  • Allow to update the completions options from a parameter (#2895)
  • Tabs cache dynamic contents (#2909)
  • Allow setting a maximum height for the loading indicator (#2910)
  • Ensure loading of MathJax bundle is optional (#2919)

Bug fixes:

  • Resolve issues with inline resources on save (#2794)
  • Restore ability to set a maximum number of selectable rows on Tabulator (#2791)
  • Fixed bug where Tabulator with remote pagination would modify the wrong rows (#2801)
  • Ensure non-exported requirejs modules do not error (#2808)
  • Ensure Tabulator checkbox selection only happens in checkbox column (#2812)
  • Vtkvolume correction of dimensions order (#2818)
  • Allow data item to miss optional field in Vega pane (#2853)
  • Allow to set AutoCompleteInput in a Param pane (#2874)
  • Fix Terminal keystroke and size handling (#2878)
  • Fix Tabulator styles on scroll (#2881)
  • Do not sync Indicator properties from frontend to avoid errors (#2886)
  • Fix roundtrip of datetimes on ReactiveData components (#2888)
  • Fix handling of Plotly pane in Tabs (#2890)
  • Fix bokeh colorbar background for dark theme (#2897)
  • Fix issues when streaming or patching ReactiveData (#2900)
  • Ensure stream and patch events do not boomerang (#2902)
  • Fixes for Card rendering in MaterialTemplate (#2911, #2912)
  • Ensure HoloViews matplotlib output uses tight layout (#2920)
  • Fix decoding of single quoted strings in url parameters (#2925)
  • Fix Tabulator checkbox selection (#2931)
  • Fix Vega pane sizing issues (#2933)
  • Ensure toggled Accordion only triggers one event on change of active Card (#2934)
  • Ensure LiteralInput JS deserializer does not insert extra spaces (#2935)
  • Fix issue in detecting script data assignment in ReactiveHTML (#2939)
  • Ensure Card collapsible icon offset is computed robustly (#2940)
  • Ensure --autoreload does not reload panel modules (#2941)
  • Ensure pn.state.curdoc is available to async callbacks (#2942)

Documentation:

  • Fix default values of panels.io.server.serve()(#2799)
  • Update docs about pn.serve per user state (#2849)
  • Added FastApi in the user guide for embedding apps (#2870)
  • Simplify homepage (#2850)

CVEs:

  • Update jQuery to remediate CVEs (#2885)