Releases: zauberzeug/nicegui
Releases · zauberzeug/nicegui
v2.15.0
New features and enhancements
- Add theme support to
ui.echart
(#4596 by @thetableman, @evnchn, @falkoschindler) - Avoid flash of unstyled text (FOUT) for icons and symbols (#4477, #4481 by @evnchn, @falkoschindler)
Bugfixes
- Fix a memory leak and a possible RuntimeError in the binding module (#4419, #4617, #4619 by @chriswi93, @x2a-packet, @evnchn, @polyipseity, @falkoschindler, @rodja)
Testing
- Fix unexpected logs in pytest when working with the user fixture (#4607, #4608 by @pmeising)
Dependencies
- Bump python-engineio to 4.12.0 to avoid pointless messages parsing attempts (#4602 by @rodja, @falkoschindler, @evnchn)
Special thanks to all our sponsors and contributors! ✨
🙏 Want to support this project? Check out our GitHub Sponsors page to help us keep building amazing features!
v2.14.1
v2.14.0
New features and enhancements
- Preload scripts for faster page load (#4505, #4507 by @daya0576, @falkoschindler, @evnchn)
- Introduce more explicit
ui.download
functions (#4104, #4564 by @marcuslimdw, @falkoschindler, @evnchn) - Introduce
LabelElement
mixin to add bindablelabel
property to various elements (#4529 by @weinibuliu, @evnchn, @falkoschindler) - Introduce new
on_begin_upload
event handler forui.upload
(#4541, #4543 by @jpruente92, @falkoschindler, @evnchn) - Let
ui.add_css
,ui.add_scss
andui.add_sass
setshared=True
(#4537 by @evnchn, @falkoschindler) - Allow simulating
ui.run_javascript
in pytests using theUser
fixture (#4508, #4512 by @chriswi93, @rodja, @falkoschindler) - Provide better warning if On Air service is not reachable (#4582 by @rodja)
- Chunk large HTTP responses when relayed through On Air service (#4555 by @rodja)
- Show On Air connection errors with message from server (#4553 by @rodja)
Bugfixes
- 🚨🚨🚨 WARNING: The bugfix "Avoid RuntimeError while iterating over bindable properties (#4419, #4550 by @chriswi93, @falkoschindler)" lead to possible app freezes. Please Use 2.14.1 instead.
- Avoid
ui.echart
from initially rendering twice (#4501, #4535, #4584 by @depley, @evnchn, @falkoschindler) - Fix
ui.scene.clear()
if it containsgroup
scene objects (#4560 by @NiklasNeugebauer, @evnchn, @falkoschindler) - Use
background_tasks.create
to avoid destroying pending tasks (#4500, #4551 by @JudeMcbeath, @evnchn, @zbxiany, @chriswi93, @jpentland-jrw, @falkoschindler) - Fix typing for
ui.refreshable
andui.refreshable_method
(#4510 by @drkspace)
Documentation
- Fix bug in interactive styling demo (#4576 by @hwtam, @evnchn, @falkoschindler)
- Fix a demo for
ui.aggrid
which requires a@ui.page
function (#4570, #4572 by @CodeCubeNeo, @evnchn) - Improve cover image in README.md for dark mode (#4544 by @evnchn)
- Fix tests folder structure in for modular projects (#4522 by @aleksandr-vin)
Dependencies
- Bump typing-extensions from 4.12.2 to 4.13.1 (#4562 by @dependabot)
- Bump ruff from 0.9.9 to 0.11.2 (#4545 by @dependabot)
Special thanks to all our sponsors and contributors! ✨
🙏 Want to support this project? Check out our GitHub Sponsors page to help us keep building amazing features!
v2.13.0
New features and enhancements
- Improve efficiency of async page functions (#4450, #4461, #4462, #4466 by @evnchn, @falkoschindler)
- Improve efficiency of UI updates (#4457, #4463 by @evnchn, @falkoschindler)
- Introduce
ui.navigate.history
to update URL in browser (#4382 by @platinops, @rodja, @falkoschindler) - Add
timeout
property forui.notification
(#4437, #4444 by @weinibuliu, @falkoschindler) - Support
ui.select
with multiple values and dictionaries in user test fixture (#4449 by @Daemo00, @rodja, @falkoschindler) - Introduce Cursor rules to improve quality of AI code generation (#4445 by @rodja)
Bugfixes
- Avoid duplicate updates of UI elements (#4344, #4470 by @roblight, @falkoschindler)
- Fix parsing of URL parameters in props (#4453 by @pimswr, @falkoschindler)
- Fix potential conflicts of "select" and "change" events in
ui.json_editor
(#4397, #4458 by @natankeddem, @falkoschindler) - Avoid overwriting original list when setting
ui.table.columns
(#4418, #4428 by @weinibuliu, @falkoschindler) - Ensure valid host when opening native window (#4438, #4443 by @natankeddem, @rodja)
- Fix displayed list of IP addresses on startup (#4425 by @zak-45, @rodja, @falkoschindler)
- Define Starlette version for Python 3.8 to avoid static resources not being found (#4255 by @KimigaiiWuyi, @arlowhite, @guyingbo, @fm-andres-rangel, @AERCR3, @Kludex, @sonman, @falkoschindler)
Documentation
- Add Google OAuth2 example (#4361, #4371 by @frankvp11, @@rodja, @falkoschindler)
- Add Google One Tap authentication example (#3243, #3244 by @bin-san, @rodja, @falkoschindler)
Special thanks to all our sponsors and contributors! ✨
🙏 Want to support this project? Check out our GitHub Sponsors page to help us keep building amazing features!
v2.12.1
Bugfix
- Fix inconsistency between supported language codes and defined translations (#4417 by @hyoshida-jr, @falkoschindler)
v2.12.0
New features and enhancements
- Introduce a
ui.slide_item
element (#4282, #4358 by @void-gfly, @thetableman, @falkoschindler) - Introduce a
ui.rating
element (#4347 by @thetableman, @falkoschindler) - Derive
ui.drawer
,ui.left_drawer
andui.right_drawer
fromValueElement
(#4320, #4334 by @xaptronic, @codingpaula, @falkoschindler) - Allow to ignore non-existing files when using
app.add_static_file
andapp.add_media_file
(#4406, #4411 by @ed2050, @rodja) - Add support for WMS layers in
ui.leaflet
(#4360 by @platinops, @falkoschindler) - Add translations for the connectivity popup (#4324 by @Yuerchu, @falkoschindler)
- Allow copying objects with bindable properties and preserve bindability (#3995, #4251 by @balex89, @falkoschindler)
- Define autopep8 rules in pyproject.toml (#4368 by @EmberLightVFX, @codingpaula, @falkoschindler)
Bugfixes
- Wait for
ui.leaflet
to load before loading plugins (#4395, #4401 by @anthony-arnold) - Improve update of notifications (#4373, #4379 by @pedropg898, @falkoschindler)
- Await the
delete
method when working with a Redis storage (#4339 by @enigmanoid, @rodja) - Explicitly use UTF-8 encoding where possible (#4364 by @masushin, @falkoschindler)
- Fix initialization of
app.storage.general
(#4352, #4355, #4374 by @SHDocter, @zobac, @rod7760, @rodja)
Documentation
- Use a query parameter for the redirect path in the "Authentication" example (#4388 by @tonyallan, @falkoschindler)
- Explain why the global scope refreshable demo doesn't work on nicegui.io (#4338 by @me21, @falkoschindler)
Dependencies
- Bump nicegui-highcharts from 2.0.2 to 2.1.0 (#4362 by @dependabot)
Special thanks to all our sponsors and contributors! ✨
🙏 Want to support this project? Check out our GitHub Sponsors page to help us keep building amazing features!
v2.11.1
Bugfixes
- Fix saving non-serializable data in tab storage (#4313, #4325 by @ReubenVandezande, @falkoschindler, @rodja)
- Fix update mechanism for
ui.plotly
to prevent random resets (#4186, #4317 by @duane-space, @falkoschindler) - Fix
KeyError
in disconnect handler (#4304 by @trivedihoney, @rodja, @chriswi93, @falkoschindler) - Automatically unregister
BindableProperty
objects to avoid memory leaks (#4109, #4122 by @andybayer, @falkoschindler)
Build pipeline
- Fix upload to zenodo by using our own built version (#4303 by @codingpaula)
Special thanks to all our sponsors and contributors! ✨
🙏 Want to support this project? Check out our GitHub Sponsors page to help us keep building amazing features!
v2.11.0
New features and enhancements
- Introduce
ui.fullscreen
for controlling fullscreen mode (#4165 by @Alyxion, @falkoschindler) - Introduce
@binding.bindable_dataclass
decorator to create bindable dataclasses (#3957, #3987 by @balex89, @falkoschindler) - Improve support for Leaflet plugins (#2767, #4289 by @tfitzsim, @falkoschindler)
- Introduce
selection
property forui.table
to allow changing the selection type (#4296 by @DevMax007, @falkoschindler) - Improve connection parameters for Redis storage (#4299, #4300 by @alydersen)
Bugfixes
- Prevent page content from being deleted when a client reconnects (#4253, #4271, #4285 by @chriswi93, @rodja, @falkoschindler)
- Prevent
ui.leaflet
from resetting center and zoom when browser resizes (#4182, #4265 by @qutang, @nathanWagenbach, @falkoschindler) - Fix erroneous keyboard events caused by autocompletion (#2545, #4290, #4291 by @Albert-mah, @natankeddem, @falkoschindler)
Documentation
- Add a Single-File Component to the "Custom Vue Component" example (#4229 by @josephburkhart, @falkoschindler)
- Avoid index page being overwritten by one of the demos (#4270, #4272 by @natankeddem, @falkoschindler, @rodja)
Dependencies
- Bump certifi from 2024.12.14 to 2025.1.31 (#4294 by @dependabot)
- Bump plotly from 5.24.1 to 6.0.0 (#4287 by @dependabot)
- Bump pywebview from 5.3.2 to 5.4 (#4283 by @dependabot)
Special thanks to all our sponsors and contributors! ✨
🙏 Want to support this project? Check out our GitHub Sponsors page to help us keep building amazing features!
v2.10.1
Bugfix
- Fix problems in native mode caused by
app.main_window
being undefined (#4244 by @raffaellof, @falkoschindler)
Dependency
- Bump abatilo/actions-poetry from 3 to 4 (#4245 by @dependabot)
v2.10.0
New features and enhancements
- Introduce redis storage which syncs between multiple instances, sponsored by @alydersen (#1606, #4074 by @rodja, @hany, @juledwar, @Alyxion, @falkoschindler)
- Load dependencies in parallel when updating UI elements (#4235 by @NiklasNeugebauer, @falkoschindler)
- Introduce axis limit parameters for
ui.line_plot.push()
and fix potential matplotlib warning (#4192 by @drkspace, @falkoschindler) - Introduce
ui.clipboard.read_image()
(#4144 by @liunux4odoo, @falkoschindler)
Bugfixes
- Fix
ui.input
ignoring "keydown.-" events (#4209, #4210 by @ronniebax, @falkoschindler) - Register middlewares as late as possible (#4155 by @rodja)
- Fix leaked semaphore object warning (#4129, #4131, #4132 by @ChipsAHoai, @rodja)
Documentation
- Introduce a "Map of NiceGUI" (#4128 by @falkoschindler)
- Add version information to documentation (#4137, #4221 by @ed2050, @falkoschindler)
- Add an example to show OpenAI's Assistant API with async/await (#4136 by @rodja)
- Demonstrate dialog event registration (#4153 by @rodja)
- Remove wrong statement about socket IDs in UI events (#4016 by @PeterQuinn396, @falkoschindler)
- Dynamically mirror "Other HTML elements" demo (#4232 by @norlatif, @falkoschindler)
Dependencies
- Bump certifi from 2024.8.30 to 2024.12.14 (#4211 by @dependabot)
- Bump mypy from 1.13.0 to 1.14.1 (#4223 by @dependabot)
- Bump pygments from 2.18.0 to 2.19.1 (#4212 by @dependabot)
- Bump python-socketio from 5.11.4 to 5.12.1 (#4213 by @dependabot)
- Bump ruff from 0.8.1 to 0.9.1 (#4198, #4214 by @dependabot)
- Bump uvicorn from 0.32.1 to 0.33.0 (#4215 by @dependabot)