Releases: h2oai/wave
Releases · h2oai/wave
v0.12.1
- Fixed
- Fix
ui.frame()overlapping other components inside a form card. - Fix form card component layout issues in Safari.
- Improve layout of stats cards when 1-unit high.
- Fix
v0.12.0
- Added
- Add
onandhandle_onAPIs for query-handling and routing. - Add support for usage tracking via Google Analytics.
- Use
H2O_WAVE_APP_MODEenvironment variable to determine app sync behavior (as an alternative to@app(mode=...)). - Add experimental support for switching theme to a dark-mode "neon" theme.
- Add
- Changed
- Stricter type validation for ui.* API parameters.
- Stricter validation for non-empty strings when required (name of components, etc.)
- Fixed
- Center breadcrumbs vertically in alloted space.
- Fix breakages in Cypress test runner.
- Fix
ui.frame()sizing in Safari. - Fix rendering in Safari for cards that display circular progress bars.
- Allow special characters in column names while using template strings for
ui.plot()
v0.11.0
- Added
- Make all cards render responsively in both grid and flex layouts.
- Add demo application that showcases various dashboards using flexible/responsive layouts.
- Add
ui.stats()andui.stat()for displaying metrics inline in forms. - Add
ui.section_card()to demarcate sections on a page, with optional nested components. - Add
ui.stat_list_card()to display lists of metrics, with optional icons and links. - Add
ui.stat_table_card()to display tables of metrics, with optional icons and links. - Add
ui.inline()to nest and display components horizontally inside a form. - Add
ui.footer_card()to display footers at the bottom of pages. - Allow form cards to have titles.
- Allow disabling nav items.
- Add support for color variable in plot color ranges.
- Add support for color variable in plot shape/text fills and strokes.
- Allow tabs inside forms to trigger hash change navigation.
- Allow a tab card's selected tab to be accessed using the card's name.
- Publish
h2o-wavepackage to Conda. - Example for displaying background task completion using a progress bar.
- Example for displaying Pandas frames as markdown tables.
- Example for plotting Pandas frames.
- OIDC refresh token is now accessible in the Python client.
- Make documentation searchable.
- Add table of contents for all Wave examples.
- Add tags to all examples; show tag on an index page.
- Changed
- Stats cards now dynamically resize to fit card size.
- Picker now displays suggestion list in advance.
- Center breadcrumbs vertically in flex layouts.
- Plot cards now dynamically resize to fit.
- Improve markdown rendering consistency across components.
- Center tabs vertically when used in flex layouts.
- Display tab cards without a background/padding.
- Display toolbar cards without a background/padding.
- Vega cards now dynamically resize to fit.
- Improve spacing between components contained in an expander.
- Fixed
- Fix Wave tour on Windows.
- Fix responsive layout in Safari.
- Fix bug where
--no-reloadof apps was using incorrect port. - Fix client-side warnings when using components nested recursively.
- Close dialogs properly when the top X button is clicked.
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_startupandon_shutdownhooks. - Allow color picker to submit values immediately when changed (
triggerattribute). - 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 (
triggerattribute). - Treat
wave run foo/bar/baz.pyaswave 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.
@appdecorator to identify primary query handler in an app.- Live-reload for apps.
- New
waveCLI andwave runcommand. q.run()andq.exec()APIs for running background tasks.- Display server version/build at startup.
AsyncSitefor 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
httpxlibrary. listen()is deprecated.H2O_WAVE_INTERNAL_ADDRESSandH2O_WAVE_EXTERNAL_ADDRESSare deprecated.- An app's UI is now cleared when an app crashes or is terminated.
- All examples migrated to use
@appinstead oflisten(). - Server binary renamed to
waved(as inwavedaemon). - Apps using
@appmust 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
triggerproperty to the date picker component. - Allow pre-selecting rows in the table component.
- Add
visibleproperty 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