Skip to content

Vaadin Flow Components V25.3.0-alpha8

Pre-release
Pre-release

Choose a tag to compare

@vaadin-bot vaadin-bot released this 10 Aug 06:36
· 4 commits to main since this release
352fd4f

Vaadin Flow Components 25.3.0-alpha8

This is a release of the Java integration for Vaadin Components to be used from the Java server side with Vaadin Flow.

Changes in Flow Components from 25.3.0-alpha7

Changes in All Components

  • Chore:
    • Increase Web-Component version

Changes in vaadin-checkbox-flow

  • New Features:
    • Add HasAriaDescription to field components. PR:9811

      This PR adds the HasAriaDescription mixin interface to all field components that implement HasAriaLabel, overriding setAriaDescribedBy / getAriaDescribedBy to map to the accessibleDescriptionRef property, which propagates the reference to the input element (the default implementation sets attributes on the host element instead). This follows the same pattern as accessibleName / accessibleNameRef. DateTimePicker is left out because it doesn't implement HasAriaLabel, HasPrefix or HasSuffix. Part of vaadin/web-components#11975

Changes in vaadin-combo-box-flow

  • New Features:
    • Add HasAriaDescription to field components. PR:9811

      This PR adds the HasAriaDescription mixin interface to all field components that implement HasAriaLabel, overriding setAriaDescribedBy / getAriaDescribedBy to map to the accessibleDescriptionRef property, which propagates the reference to the input element (the default implementation sets attributes on the host element instead). This follows the same pattern as accessibleName / accessibleNameRef. DateTimePicker is left out because it doesn't implement HasAriaLabel, HasPrefix or HasSuffix. Part of vaadin/web-components#11975

Changes in vaadin-date-picker-flow

  • New Features:
    • Add HasAriaDescription to field components. PR:9811

      This PR adds the HasAriaDescription mixin interface to all field components that implement HasAriaLabel, overriding setAriaDescribedBy / getAriaDescribedBy to map to the accessibleDescriptionRef property, which propagates the reference to the input element (the default implementation sets attributes on the host element instead). This follows the same pattern as accessibleName / accessibleNameRef. DateTimePicker is left out because it doesn't implement HasAriaLabel, HasPrefix or HasSuffix. Part of vaadin/web-components#11975

Changes in vaadin-dialog-flow

  • New Features:
    • Add setAutofocus to dialog, deprecate setFocusTrap. PR:9799. Ticket:11971

      This PR adds a setAutofocus method to Dialog that controls whether focus should automatically move into the dialog's overlay on open, and deprecates setFocusTrap in its favor. The setting only works for non-modal dialogs and is ignored for modal ones, where focus must always stay inside. ---------

Changes in vaadin-grid-flow

  • Fixes:
    • Include descendant items in TreeGrid selectAll. PR:9819. Ticket:9816

      Calling selectAll() on GridMultiSelectionModel used to fetch items with a non-hierarchical query. With a hierarchical data provider, this resulted in an IllegalArgumentException in Vaadin 23 and 24. Since Vaadin 25, HierarchicalDataCommunicator.buildQuery returns a root-level hierarchical query, so the exception is gone, but selectAll() still selects only root items. The clientSelectAll method already handles hierarchical data providers by fetching all descendants recursively. This change extracts that logic into a shared method and makes selectAll() use it too, so both behave the same.

Changes in vaadin-radio-button-flow

  • New Features:
    • Add HasAriaDescription to field components. PR:9811

      This PR adds the HasAriaDescription mixin interface to all field components that implement HasAriaLabel, overriding setAriaDescribedBy / getAriaDescribedBy to map to the accessibleDescriptionRef property, which propagates the reference to the input element (the default implementation sets attributes on the host element instead). This follows the same pattern as accessibleName / accessibleNameRef. DateTimePicker is left out because it doesn't implement HasAriaLabel, HasPrefix or HasSuffix. Part of vaadin/web-components#11975

Changes in vaadin-select-flow

  • New Features:
    • Add HasAriaDescription to field components. PR:9811

      This PR adds the HasAriaDescription mixin interface to all field components that implement HasAriaLabel, overriding setAriaDescribedBy / getAriaDescribedBy to map to the accessibleDescriptionRef property, which propagates the reference to the input element (the default implementation sets attributes on the host element instead). This follows the same pattern as accessibleName / accessibleNameRef. DateTimePicker is left out because it doesn't implement HasAriaLabel, HasPrefix or HasSuffix. Part of vaadin/web-components#11975

Changes in vaadin-slider-flow

  • New Features:
    • Add HasAriaDescription to field components. PR:9811

      This PR adds the HasAriaDescription mixin interface to all field components that implement HasAriaLabel, overriding setAriaDescribedBy / getAriaDescribedBy to map to the accessibleDescriptionRef property, which propagates the reference to the input element (the default implementation sets attributes on the host element instead). This follows the same pattern as accessibleName / accessibleNameRef. DateTimePicker is left out because it doesn't implement HasAriaLabel, HasPrefix or HasSuffix. Part of vaadin/web-components#11975

Changes in vaadin-spreadsheet-flow

  • Fixes:
    • Reuse custom editors on user-driven cell updates. PR:9814

      Custom editors from a SpreadsheetComponentFactory were replaced with new instances on every user interaction that commits a cell value, so whatever the user had entered was lost. #9493 fixed the cases that re-render the same cells (scrolling, selection, resize), but the paths through updateMarkedCells() still recreated them. #9493 even describes refreshCells() as reusing editors, while in code it recreated them, and that is the case the reproducer in #9180 hits. ## Reproduction java ComboBox<String> comboBox = new ComboBox<>(); comboBox.setItems("Apple", "Banana", "Cherry"); comboBox.addValueChangeListener(event -> { spreadsheet.createCell(rowIndex, columnIndex, event.getValue()); spreadsheet.refreshCells(spreadsheet.getCell(rowIndex, columnIndex)); }); Pick a value in the editor cell: it is replaced by whatever onCustomEditorDisplayed sets. The same happens on Delete, paste, fill-drag, merging cells and collapsing a group. A second case: double-click a plain cell to open the built-in editor, then click a cell that has a custom editor. That editor disappears until the cell is selected again. ## Changes Reuse is now the default in updateMarkedCells(). Only shiftRows() and deleteRows() opt out, through updateMarkedCellsRecreatingEditors(), because they move cells and editors are cached per cell. Reused editors keep their client node ids, so cellKeysToEditorIdMap stops changing, and the client re-attaches editors only when it does. That revealed an older bug behind the second case: the deferred commit of an inline edit takes its target from the selection, which may have moved onto an editor cell by then, and writing a value into a cell removes the editor in it. SheetWidget.updateSelectedCellValue now skips that write, using the check cellValuesUpdated already applies. The late target resolution itself is left alone, and the cell value is not affected, because doCommitIfEditing commits it before the deferred call runs. Since the factory is now asked for an editor only once per cell, an editor picked from the cell's value is no longer replaced when that value changes. getCustomEditorForCell says so now, and names reloadVisibleCellContents() as the way to force a re-ask. Factories that decide by position, which is the common case, are unaffected. reloadVisibleCellContents(), shiftRows() and deleteRows() still leave a recreated editor empty with no callback to fill it. That is long-standing behaviour, reported as #9812. CustomEditorSelectionIT covers the text selection asked for in #9036, which no test asserted before. Part of #9180, Follow-up to #9493, Related to #9036, Related to #9812 --- 🤖 Generated with Claude Code ---------

Changes in vaadin-text-field-flow

  • New Features:
    • Add HasAriaDescription to field components. PR:9811

      This PR adds the HasAriaDescription mixin interface to all field components that implement HasAriaLabel, overriding setAriaDescribedBy / getAriaDescribedBy to map to the accessibleDescriptionRef property, which propagates the reference to the input element (the default implementation sets attributes on the host element instead). This follows the same pattern as accessibleName / accessibleNameRef. DateTimePicker is left out because it doesn't implement HasAriaLabel, HasPrefix or HasSuffix. Part of vaadin/web-components#11975

Changes in vaadin-time-picker-flow

  • New Features:
    • Add HasAriaDescription to field components. PR:9811

      This PR adds the HasAriaDescription mixin interface to all field components that implement HasAriaLabel, overriding setAriaDescribedBy / getAriaDescribedBy to map to the accessibleDescriptionRef property, which propagates the reference to the input element (the default implementation sets attributes on the host element instead). This follows the same pattern as accessibleName / accessibleNameRef. DateTimePicker is left out because it doesn't implement HasAriaLabel, HasPrefix or HasSuffix. Part of vaadin/web-components#11975

Compatibility