Skip to content

Version 1.4.0

Compare
Choose a tag to compare
@philippjfr philippjfr released this 27 Mar 15:58
· 492 commits to main since this release

This minor release packs a punch both in terms of features, the number of enhancements and bug fixes and perhaps most importantly the addition of a set of tutorials that aim to get novices up-to-speed. The main new feature is a so called EditableTemplate which allows arranging dashboards using a drag-and-drop interface and also has strong integration with JupyterLab previews to go from a notebook to a deployed app without having to worry about writing layout code. Next, this release includes a number of new widgets (NestedSelect, DateRangePicker, ButtonIcon), layouts (Feed) and panes (Textual, WebP), and overhauls the autoreload feature with faster and more robust support for reloading entire modules. Lastly this release, along with Param 2.1.0, continues to build on the new reactive expression API making it easy to write reactive expressions and pipelines including support for streaming data with generators. We really appreciate all the work that went into this release and especially want to call out @MarcSkovMadsen's effort in putting together the new tutorial materials. There's more work to do but it's a huge step forward and we're excited to hear your feedback. We want to extend a special thanks to our amazing new crop of new contributors including @atisor73, @OSuwaidi, @suryako, @Davide-sd, @doraaki, @mayonnaisecolouredbenz7, @CTPassion, @j01024, @l3ender and @Coderambling. Next we want to recognize our returning contributors @vaniisgh, @cdeil, @limx0m, and @TheoMaturin, and finally the dedicated crew of core contributors which include @maximlt, @hoxbro, @MarcSkovMadsen, @ahuang11, @mattpap and @philippjfr.

Features

  • Add EditableTemplate to support dashboard builder UI in Jupyter (#5802)
  • Add ChatAreaInput as default text input widget for ChatInterface (#6379)
  • Add NestedSelect widget (#5791, #6011)
  • Add Panel tutorials (#5525, #6208, #6212, #6388, #6425, #6466, #6491)
  • Add DateRangePicker widget (#6027)
  • Add Feed layout and use it as layout for ChatFeed (#6031, #6296)
  • Add WebP pane (#6035)
  • Add ButtonIcon (#6138)
  • Add Textual pane (#6181)

Enhancements

  • Improve --autoreload by using watchfiles and selectively reloading packages (#5894, #6459)
    Load loading indicator from file instead of inlining (#6112)
  • Allow providing additional stylesheets in card_params (#6242)
  • Add scroll options to permanently toggle on layouts (#6266)
  • Allow choosing position of frozen columns on Tabulator (#6309)
  • Add help message on ChatFeed (#6311)
  • Ensure CSS can be applied to every aspect of ChatMessage (#6346)
  • Add HoloViz logos as ChatMessage avatars (#6348)
  • Add gap parameter to FlexBox (#6354)
  • Set default step of DatetimeRangeSlider to 1 minute (#6373)
  • Add support for passing objects reference to FlexBox (#6387)
  • Allow editable sliders to be embedded (#6391)
  • Add message into css_classes to ChatMessage markup (#6407)
  • Allow appending objects to the ChatMessage header & footer (#6410)
  • Add ability to declare icon label (#6411)
  • Add title and settings and fix datetime to Perspective (#6482)
  • Warn user if loading extension in VSCode or Colab without jupyter_bokeh (#6485)
  • Throttle updates to Boolean indicators (#6481)
  • Add ParamRef baseclass for ParamFunction and ParamMethod (#6392)
  • Add ability to Skip Param<Ref|Function|Method> updates (#6396)
  • Add Param<Ref|Method|Function> and ReactiveExpr to panes module (#6432)
  • Set up param.rx display accessor on import (#6470)
  • Allow using Carto tiles in DeckGL (#6531)
  • Improve VTKJS binary serialization (#6559)
  • Ensure component CSS is pre-loaded if possible, avoiding flicker on load (#6563)

Styling

  • Ensure navbar toggle icon is correct color in BootstrapTemplate (#6111)
  • Change loading background filters to work better in dark themes (#6112)
  • Improve styling of FileInput widget (#6479)
  • Improve Jupyter Preview error handling and error template (#6496)
  • Add scale animation to icons on hover and click (#6376)
  • Redesign index pages (#6497)
  • Improve Tabulator editor text color in Fast design (#6512)
  • Ensure BootstrapTemplate hamburger icon is white (#6562)

Compatibility & Version Updates

  • Bump Perspective version to 2.9.0 (#5722)
  • Upgrade to Bokeh 3.4.x (#6072)
  • Upgrade Vizzu to 0.9.3 (#6476)
  • Bump JSONEditor version to 10.0.1 (#6477)
  • Upgrade to PyScript Next and Pyodide 0.25.0 in panel convert (#6490)
  • Bump vtk.js version to 30.1.0 (#6559)

Bug fixes

  • Add resize handler for FloatPanel (#6201)
  • Fix serving of global template in notebook (#6210)
  • Ensure Tabulator renders in collapsed Card (#6223)
  • Fix issues with VTK, VTKVolume and VTKJS due to webgpu renderer (#6244)
  • Ensure ChatInterface respect supplied default user (#6290)
  • Ensure HTML and other markup panes can be emptied (#6303)
  • Ensure ChatMessage internals correctly respect Design (#6304)
  • Ensure collapsed Card does not cause stretching (#6305)
  • Ensure notebook preview always uses server resources (#6317)
  • Remove animation from loading spinner without spin (#6324)
  • Ensure model is only added/removed from Document once (#6342)
  • Ensure loading_indicator resets when configured with context manager (#6343)
  • Fix modal overflow and resizing issues (#6355)
  • Ensure that ripple matches notification size (#6360)
  • Fully re-render CodeEditor on render calls ensuring it displays correctly (#6361)
  • Ensure FileDownload button has correct height (#6362)
  • Ensure HTML model is redrawn if stylesheets is emptied (#6365)
  • Allow providing custom template (#6383)
  • Ensure Debugger renders without error (#6423)
  • Ensure ChatMessage header updates dynamically (#6441)
  • Ensure pending writes are dispatched in order and only from correct thread (#6443)
  • Ensure layout reuses model if available (#6446)
  • Improved exception handler in unlocked message dispatch (#6447)
  • Fix display of interactive Matplotlib (#6450)
  • Ensure streaming ChatMessage on ChatInterface and mention serialize (#6452)
  • Ensure Plotly pane renders and hides correctly in Card (#6468)
  • Fix issues rendering widget components with Fast design (#6474)
  • Fix binary serialization from JS -> Pyodide (#6490)
  • Avoid overeager garbage collection (#6518)
  • Fix floating point error in IntRangeSlider (#6516)
  • Load JS modules from relative path (#6526)
  • Ensure no events are dispatched before the websocket is open (#6528)
  • Ensure Markdown parsing does not choke on partial links (#6535)
  • Fixes to ensure larger PDFs can be rendered (#6538)
  • Ensure IPywidget comms are only opened once (#6542)
  • Fixes for message handling in Jupyter Preview context (#6547)
  • Fix unnecessary loading of ReactiveHTML resources (#6552)
  • Ensure Template.raw_css has higher precedence than default template CSS (#6554)
  • Avoid asyncio event loop startup issues in some contexts (#6555)
  • Ensure column subset is retained on Tabulator.style (#6560)
  • Ensure bokeh mathjax bundle when mathjax extension is loaded in notebook (#6564)

Chat Components

  • Fix ChatInterface stop button for synchronous functions (#6312)
  • Include stylesheets downstream, including layouts in ChatMessage (#6405)
  • Ensure ChatInterface supports chat input without value_input parameter (#6505)
  • Ensure word breaks to avoid overflow in ChatMessage (#6187, #6509)
  • Ensure nested disabled state stays disabled on ChatFeed (#6507)
  • Allow streaming None as the initial ChatMessage value (#6522)

Documentation

  • Add Roadmap to documentation (#5443)
  • Refactor ReactiveHTML docs (#5448, #6358)
  • Improve HoloViews reference guide (#6065)
  • Improve the user experience for resetting Jupyterlite (#6198)
  • Add explanation docs about APIs (#6289, #6469)
  • Add section headers to Chat reference documentation (#6370)
  • Migrate gallery to new Anaconda DSP instance (#6413)
  • Improve home page (#6422)
  • Adding AWS deployment to documentation (#6434)
  • Update Streamlit comparison (#6467)
  • Add logging how-to guide (#6511)
  • Document pygments dependency for code syntax highlighting (#6519)
  • Add how-to guide on configuring PyCharm (#6525)

Deprecations & Removals

  • Remove Ace alias for CodeEditor
  • Remove ChatBox which has been replaced by panel.chat components
  • Remove HTML.style which is now replaced with HTML.styles
  • Remove Trend.title which is now replaced by Trend.name
  • Remove Viewable.app which is now replaced with pn.io.notebook.show_server
  • Remove Viewable.background which is now replaced with Viewable(styles={'background': ...})
  • Remove Viewable.pprint which is now replaced with print(Viewable(...))