Changes since 25.0.0-beta7
Breaking changes
-
Change UploadHandler.responseHandled to use UploadResult record
Commit · Pull requestReplace the boolean success and VaadinResponse parameters with an UploadResult record that encapsulates success status, response, and any exception that occurred. This makes the API extensible for future enhancements without breaking changes.
New features
-
Add signal binding for style property
Commit · Pull request · IssueAllows a string signal binding for style properties, e.g.: ValueSignal backgroundColor = new ValueSignal<>("red"); textField.getStyle().bind("background-color", backgroundColor);
-
Add component-level ColorScheme support via Style interface
Commit · Pull requestAdds setColorScheme() and getColorScheme() methods to the Style interface, allowing developers to set the CSS color-scheme property on individual components. This complements the page-level ColorScheme API. The implementation follows existing Style interface patterns for CSS properties and uses the same ColorScheme.Value enum for type safety. Changes: - Added STYLE_COLOR_SCHEME constant to ElementConstants - Added setColorScheme(ColorScheme.Value) to Style interface - Added getColorScheme() to Style interface - Added comprehensive unit tests in HasStyleTest Usage example: component.getStyle().setColorScheme(ColorScheme.Value.DARK);
-
Add Maven goal to download Vaadin Pro license key
Commit · Pull requestIntroduces a new 'download-license' goal that automates the process of obtaining a Pro license key through browser-based authentication. The downloaded key is saved to ~/.vaadin/proKey for use in validating commercial Vaadin components.
-
Add ColorScheme API for light/dark theme support
Commit · Pull request · IssueAdds a ColorScheme API for controlling light and dark theme variants in Vaadin applications. Includes an
@ColorSchemeannotation for initial configuration andPage.setColorScheme()for runtime switching. Uses the HTML theme attribute approach for CSS compatibility. Initial Configuration -@ColorSchemeannotation for AppShell to set the initial color scheme - Applied as inline style on element during bootstrap Runtime Control - Page.setColorScheme(ColorScheme.Value) / Page.getColorScheme() for dynamic switching - ColorScheme.Value enum: LIGHT, DARK, LIGHT_DARK, DARK_LIGHT, NORMAL - Server-side state synchronized via ExtendedClientDetails Implementation Details - Sets theme attribute on element (e.g., ) - Clears inline style.colorScheme to allow theme CSS to set the property - Enables CSS selectors: html[theme~="dark"] { color-scheme: dark; } - Client sends color scheme to server via v-cs parameter in Flow.ts - Automatic string-to-enum conversion via ColorScheme.Value.fromString() Backward Compatibility - Deprecated@Theme(variant)attribute in favor of@ColorScheme- Existing variant usage continues to work
Fixes
-
Stablize test in flow-component
Commit · Pull requestPart of #22767 Similar to PR #22808. This PR fixes 1 flaky test in flow-html-component: HtmlComponentSmokeTest#testAllHtmlComponents. HtmlComponentSmokeTest#testAllHtmlComponents: Add check before testing each setter method to make sure isEnabled is set to true for any instance with this attribute.
-
Rename check-permissions jobs to avoid workflow grouping issues
Commit · Pull requestThe Formatter and Flow Validation workflows both had a job named
check-permissions, causing GitHub Actions UI to incorrectly group jobs from different workflows together. This resulted in the test-results job from Flow Validation appearing under the Formatter workflow section. Renamed the jobs to be workflow-specific: - formatter.yml: check-permissions -> check-permissions-formatter - validation.yml: check-permissions -> check-permissions-validation Updated all job dependencies accordingly to ensure proper workflow execution. -
Get ui from context if not given
Commit · Pull requestsetting the UI to the progress handler.
-
Apply color-scheme CSS property in @colorscheme annotation
Commit · Pull requestMake @colorscheme annotation apply both the theme attribute and the color-scheme CSS property to the html element, matching the behavior of Page.setColorScheme() method for consistent behavior between static and dynamic color scheme configuration.
-
Use direct VAADIN path for push script URL
Commit · Pull request · IssueThe correct approach is to use the direct VAADIN/... path without any navigation prefix. This works because the already points to the servlet root, so relative URLs resolve correctly to {context-path}/{servlet-path}/VAADIN/...