Security
- ⚠️ Reject uploads to disabled or hidden
ui.uploadelements, whose upload route bypassed the server-side event check (GHSA-9mxh-cwxr-cxjj by @alperenkesk, @evnchn, @falkoschindler)
New features and enhancements
- Add
reveal_line()and the signalson_focus_change,on_viewport_changeandon_geometry_changetoui.codemirror(#5984 by @Jepson2k, @evnchn, @falkoschindler)
Bugfixes
- Report exceptions from
@ui.refreshablerebuilds, asyncEventsubscribers, asyncvalidationfunctions and other fire-and-forget tasks toui.on_exception(#6233, #6234, #6262, #6363 by @evnchn, @SaadZahem, @falkoschindler) - Fix
ui.sub_pagesstaying in the SPA instead of loading pages registered viaapp.include_router(), also with FastAPI 0.141+ (#6281, #6374 by @falkoschindler, @DineshThumma9, @KrilleGH, @evnchn) - Fix
button.clicked()registering a new click listener on every await (#6312, #6333 by @falkoschindler, @jnchen, @evnchn) - Create the tab storage before the connect handlers run and in the On Air handshake (#6310, #6332, #6341, #6355 by @evnchn, @jnchen, @Barry-Lenhart, @falkoschindler)
- Fix a duplicated browser tab sharing nested values of its tab storage with the original tab (#6364 by @falkoschindler, @evnchn)
- Fix Redis tab storage no longer receiving changes from other instances after a page reload (#6365 by @falkoschindler, @evnchn)
- Fix
ui.leafletandui.sceneelements being kept alive after their client is gone (#6339, #6345 by @falkoschindler, @wolfgang-aura, @evnchn) - Fix elements staying registered when their constructor raises after
Element.__init__(#6343, #6369 by @falkoschindler, @horizonbymuneeb) - Fix
make_sortable()having no effect on containers rendered after page load, like inside aui.dialog(#6353, #6358 by @darronmcnutt, @evnchn, @falkoschindler) - Fix
ui.codemirrorleaving its editor view alive after a remount (#6367, #6368 by @falkoschindler, @evnchn) - Fix
ui.sceneobjects created before the scene is mounted being lost, a regression in 3.16 (#6379, #6380 by @ptruka, @falkoschindler, @evnchn)
Documentation
- Add a Chinese translation of the website chrome under
/zh(#4025, #6350 by @Yuerchu, @evnchn, @falkoschindler) - Add a sitemap and robots.txt to the website (#6357 by @falkoschindler, @evnchn)
- Update nicegui-highcharts to 3.5 and document that
point_indexofui.highchartis Highcharts' internal index (#6259, #6347 by @aFlocker, @evnchn, @falkoschindler) - Document custom colors from
ui.colorsfor LLMs and in the documentation (#6351 by @falkoschindler, @evnchn) - Explain JavaScript expressions in
ui.aggridoptions and log unknown row IDs inrun_row_method()(#6344, #6362 by @csrubin, @falkoschindler, @evnchn) - Fix the
ui.scenedocstrings for material side and spot light defaults (#6243 by @python-and-novella, @evnchn, @falkoschindler) - Clarify which
faviconvaluesui.runandui.pageaccept (#6354 by @DominiksITService, @falkoschindler)
Testing
-
Close deferred background tasks when the test fixtures reset the app, which failed the first
Usertest after a module-levelui.timer(#6359 by @falkoschindler, @evnchn) -
Let
ElementFilterand theUserfixture match the values that input elements likeui.numberdisplay (#6352 by @falkoschindler, @evnchn)Breaking change:
user.should_not_see('42')now fails if aui.numbershows 42, andui.linear_progress,ui.circular_progressandui.dark_modeare no longer found by a value they do not display.
Dependencies
- Build the
ui.mermaidandui.json_editorbundles from package sources, so that the lockfiles decide which dependency versions ship (#6215, #6375 by @falkoschindler, @evnchn)
Special thanks to our top sponsors DiscoLike Inc., TestMu AI and Lechler GmbH ✨
and all our other sponsors and contributors for supporting this project!
🙏 Want to support this project? Check out our GitHub Sponsors page to help us keep building amazing features!