Releases: h2oai/wave
Releases · h2oai/wave
v0.10.0
- Added
- Add support for responsive layouts.
- Add support for modal dialogs.
- Add ability to handle events from UI (
q.events
). - Allow handling mark selection events on plots.
- Allow apps to handle server startup/shutdown events via
on_startup
andon_shutdown
hooks. - Allow color picker to submit values immediately when changed (
trigger
attribute). - Allow collapsing nav items during initialization.
- Handle display and sorting of numeric and time valued columns in
ui.table()
. - Allow links/link-buttons to open links in new windows/tabs.
- API now ships with enums for functions expecting predefined constants as parameters.
- Read OIDC flags from env vars when available.
- Automatically refresh OAuth2 access token in the background if expired.
- Allow accessing OIDC access tokens in Python client.
- Allow icons on navigation items.
- Automatically transpose columns to rows in
data()
if not packed. - Allow adjust multiline textbox height.
- Allow picker to submit values immediately when changed (
trigger
attribute). - Treat
wave run foo/bar/baz.py
aswave run foo.bar.baz
. - Allow selecting nav links during initialization.
- Changed
- Cards display a "raised" effect on mouse over; Header, tab, toolbar and navbar have alternate styles.
- Display loading spinner automatically when a request is in flight.
- Mark
ui.command(data=...)
as deprecated (useui.command(value=...)
instead, similar toui.button(...)
.) - Remove redundant
ui.*
API for discriminated unions (ui.component()
, etc.), - Add column headers to CSVs downloaded from
ui.table()
; remove row names. - Change default Wave server port from 55555 to 10101 (55555 is special on OSX Big Sur).
- Center image in image card and preserve aspect ratio.
- Fixed
- Improve ability of
ui.frame()
andui.frame_card()
to handle large HTML content. - Fix tour on Windows.
- Use ellipsis on long column labels in
ui.table()
- Improve ability of
v0.8.2
v0.9.1
v0.9.0
- Added
- ASGI compatibility: Wave apps can now be run using an ASGI server.
@app
decorator to identify primary query handler in an app.- Live-reload for apps.
- New
wave
CLI andwave run
command. q.run()
andq.exec()
APIs for running background tasks.- Display server version/build at startup.
AsyncSite
for updating other pages from an app without blocking the main thread.- Drop or clear pages from a site using
del site[route]
.
- Changed
- All HTTP calls now use non-blocking asyncio using the
httpx
library. listen()
is deprecated.H2O_WAVE_INTERNAL_ADDRESS
andH2O_WAVE_EXTERNAL_ADDRESS
are deprecated.- An app's UI is now cleared when an app crashes or is terminated.
- All examples migrated to use
@app
instead oflisten()
. - Server binary renamed to
waved
(as inwave
daemon). - Apps using
@app
must be run usingwave run
.
- All HTTP calls now use non-blocking asyncio using the
- Fixed
- Performance and concurrency improvements across the board.
- Stability improvements to the Wave Tour.
v0.8.1
v0.8.0
- Added
- Escape Cypress test functions using leading underscore
_
if they overlap with Python reserved keywords. - Add data-test attribute to all form components for browser testing.
- Add
trigger
property to the date picker component. - Allow pre-selecting rows in the table component.
- Add
visible
property to all components to show/hide them on demand. - Add support for OpenID Connect (OIDC).
- Add documentation on security.
- Escape Cypress test functions using leading underscore
- Fixed
- Default HTML page title set to Wave.
- Make % heights work properly for frames inside forms
v0.7.0
- Added
- Hash navigation using context menus.
- Allow handling location hash when an open app page is reloaded.
- Allow pre-selecting a tab in a tab_card.
- Allow setting a height on the file upload component.
- Allow justifying buttons left/center/right/spread.
- Add data-test attribute to all cards for browser testing.
- New documentation website, gallery, guides and tutorials.
- Changed
- Fit table height to content height whenever possible.
- Improve spacing between form components.
- data-test attribute is set based on the names of cards.
- Fixed
- Quote CSV data properly while downloading a table component's data.
- Don't auto-hide axis labels in plots when data is missing.
- Display labels instead of names when a pickers initial values are set.
- Handle numeric column sorting in the table component.
- Handle icon column sorting in the table component
v0.6.0
- Added
- Apps when launched now automatically use an available free port instead of
55556
. - Client-side redirects to URLs and hashes using
meta_card.redirect
. - Context menus inside forms:
ui.text_xl()
andui.text_l()
now support optional context menus. - Plots now support specifying data values for predictable color encoding and legends.
ui.markup
component for rendering HTML inline in forms.ui.template
component for rendering templated HTML inline in forms.- The height of tables can now be controlled using the
height
attribute. - Both sorting and group-by now work on the same table column if specified.
- Lots of examples on how to use
ui.table
sorting, grouping, search, download, etc. - Ability to specify which column in a
ui.table
is the primary column, or disable altogether.
- Apps when launched now automatically use an available free port instead of
- Changed
ui.text()
now unconditionally allows embedded HTML tags.- App host now defaults to
127.0.0.1
instead oflocalhost
. - Footer display in
ui.table
is now inferred from usage and displayed automatically. - The
min_width
andmax_width
attributes for table columns are now strings (consistency).
- Fixed
- Background color rendering bug when page overflows after loading.
- Render tooltip properly on toolbar command buttons.
ui.table()
rendering bug: remove stray0
.- Python error stack trace, if any, is displayed on top of all other cards on page
v0.5.0
- Added
- Example for controlling cards with tabs.
- Cypress test runner for CI.
- Search, sort, filter, group-by, export and custom cell types for table component.
- Changed
- Remove semantic validation for stepper component.
- Fixed
- Value synchronization bug in textbox component
v0.4.0
- Added
- Trigger attribute to checklist component.
- Changed
- Allow same min and max values for the range slider component.
- App tests are now automatically and directly translated to Cypress tests when loaded.
- Fixed
- Allow removing selected options from the picker component.
- Render axis title properly when specified.
- Raise informative error message if attempting to use Numpy objects in components.
- Removed
- Cypress test bridge removed from server.
run_tests
API.